{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JndnmDMp66FL"
      },
      "source": [
        "##### Copyright 2021 Google LLC.\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "hMqWDc_m6rUC"
      },
      "outputs": [],
      "source": [
        "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1jkIWqLVQUM_"
      },
      "source": [
        "# Paper experiments for \"Learning generalized Gumbel-max causal mechanisms\"\n",
        "\n",
        "This notebook shows how to reproduce the experiments for Section 7.1 and the first part of Section 7.2 (the first two columns of Table 1)."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Tr2Z0N-qSNz6"
      },
      "source": [
        "## Setting up the environment"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_j6tXnzFn-s6",
        "outputId": "e8f42689-adca-4e5b-8ec4-5798022c5920"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Cloning into 'google-research'...\n",
            "remote: Enumerating objects: 10043, done.\u001b[K\n",
            "remote: Counting objects: 100% (10043/10043), done.\u001b[K\n",
            "remote: Compressing objects: 100% (8038/8038), done.\u001b[K\n",
            "remote: Total 10043 (delta 1443), reused 7963 (delta 1209), pack-reused 0\u001b[K\n",
            "Receiving objects: 100% (10043/10043), 109.57 MiB | 21.79 MiB/s, done.\n",
            "Resolving deltas: 100% (1443/1443), done.\n",
            "Checking out files: 100% (10525/10525), done.\n"
          ]
        }
      ],
      "source": [
        "# Download the codebase\n",
        "!git clone https://github.com/google-research/google-research.git --depth=1"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "NsacX7KEsp0D"
      },
      "outputs": [],
      "source": [
        "import os\n",
        "os.chdir(\"google-research\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "AFH12ED4-5fU"
      },
      "outputs": [],
      "source": [
        "# Install Python packages\n",
        "!pip install flax optax"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "FArRxsRXT1LK",
        "outputId": "4c1cd77b-ef31-424b-b72c-b46d07e5cc39"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "grpc://10.48.40.138:8470\n"
          ]
        }
      ],
      "source": [
        "# See https://github.com/google/jax/blob/master/cloud_tpu_colabs/JAX_demo.ipynb\n",
        "import requests\n",
        "import os\n",
        "\n",
        "if 'COLAB_TPU_ADDR' not in os.environ:\n",
        "  raise RuntimeError(\"Please connect to a TPU runtime first!\")\n",
        "\n",
        "if 'TPU_DRIVER_MODE' not in globals():\n",
        "  url = 'http://' + os.environ['COLAB_TPU_ADDR'].split(':')[0] + ':8475/requestversion/tpu_driver_nightly'\n",
        "  resp = requests.post(url)\n",
        "  TPU_DRIVER_MODE = 1\n",
        "\n",
        "# Use TPU Driver as JAX's backend.\n",
        "from jax import config\n",
        "config.FLAGS.jax_xla_backend = \"tpu_driver\"\n",
        "config.FLAGS.jax_backend_target = \"grpc://\" + os.environ['COLAB_TPU_ADDR']\n",
        "print(config.FLAGS.jax_backend_target)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "yBXGGg-9VxYT",
        "outputId": "d4afab41-c31e-405f-bb74-d715bd01bf88"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "[TpuDevice(id=0, host_id=0, coords=(0,0,0), core_on_chip=0),\n",
              " TpuDevice(id=1, host_id=0, coords=(0,0,0), core_on_chip=1),\n",
              " TpuDevice(id=2, host_id=0, coords=(1,0,0), core_on_chip=0),\n",
              " TpuDevice(id=3, host_id=0, coords=(1,0,0), core_on_chip=1),\n",
              " TpuDevice(id=4, host_id=0, coords=(0,1,0), core_on_chip=0),\n",
              " TpuDevice(id=5, host_id=0, coords=(0,1,0), core_on_chip=1),\n",
              " TpuDevice(id=6, host_id=0, coords=(1,1,0), core_on_chip=0),\n",
              " TpuDevice(id=7, host_id=0, coords=(1,1,0), core_on_chip=1)]"
            ]
          },
          "execution_count": 6,
          "metadata": {
            "tags": []
          },
          "output_type": "execute_result"
        }
      ],
      "source": [
        "import jax\n",
        "print(jax.devices())"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QWHbsCIrmclj"
      },
      "source": [
        "## Imports and configuration"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "MnQpdJMdCzR7"
      },
      "outputs": [],
      "source": [
        "import functools\n",
        "import time\n",
        "from typing import *\n",
        "\n",
        "import numpy as np\n",
        "import jax\n",
        "import jax.numpy as jnp\n",
        "import optax\n",
        "import flax\n",
        "import flax.linen as nn\n",
        "\n",
        "%matplotlib inline\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib as mpl\n",
        "\n",
        "plt.ion()\n",
        "np.set_printoptions(linewidth=150)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "97l0VhKaNoxO"
      },
      "outputs": [],
      "source": [
        "from gumbel_max_causal_gadgets import coupling_util\n",
        "from gumbel_max_causal_gadgets import gadget_1\n",
        "from gumbel_max_causal_gadgets import gadget_2\n",
        "from gumbel_max_causal_gadgets import experiment_util"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wy0LfH0Totak"
      },
      "source": [
        "## Section 7.1: Optimizing for Maximality"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "5pHSKrXZon4C"
      },
      "outputs": [],
      "source": [
        "def perturbed_range_logit_pair_distribution_fn(rng, dim, base_scale=.1, noise_scale=.1):\n",
        "  p_rng, q_rng = jax.random.split(rng, 2)\n",
        "  p_base = jnp.arange(dim) - (dim - 1.0) / 2\n",
        "  q_base = -p_base\n",
        "  p_logits = base_scale * p_base + noise_scale * jax.random.normal(p_rng, (dim,))\n",
        "  q_logits = base_scale * q_base + noise_scale * jax.random.normal(q_rng, (dim,))\n",
        "  return p_logits, q_logits\n",
        "\n",
        "def maximal_coupling_loss_matrix_fn(logits1, logits2):\n",
        "  return 1.0 - jnp.eye(logits1.shape[0])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "x2BJRivOpTde"
      },
      "outputs": [],
      "source": [
        "experiments = []\n",
        "S_dim = 10\n",
        "Z_dim = 100\n",
        "for lr in [1e-5]: # 3e-5,\n",
        "  for noise_scale in [0, .1, .4, 1.6, 6.4, 25.6, 102.4]:\n",
        "    for train_seed in [1, 2, 3, 4, 5]:\n",
        "      ex = experiment_util.CouplingExperimentConfig(\n",
        "        name=f\"noise_scale={noise_scale} Z_dim={Z_dim} lr={lr} train_seed={train_seed}\",\n",
        "        model=(\n",
        "            gadget_2.GadgetTwoMLPPredictor(\n",
        "                S_dim=S_dim,\n",
        "                Z_dim=Z_dim,\n",
        "                hidden_features=[1024, 1024],\n",
        "                relaxation_temperature=1.0,\n",
        "                learn_prior=False)\n",
        "        ),\n",
        "        logit_pair_distribution_fn=functools.partial(\n",
        "            perturbed_range_logit_pair_distribution_fn,\n",
        "            dim=S_dim,\n",
        "            base_scale=.1,\n",
        "            noise_scale=noise_scale),\n",
        "        coupling_loss_matrix_fn=maximal_coupling_loss_matrix_fn,\n",
        "        inner_num_samples=16,\n",
        "        batch_size=64,\n",
        "        use_transpose=False,\n",
        "        tx=optax.adam(lr),\n",
        "        num_steps=10_000,\n",
        "        print_every=1000,\n",
        "        metadata={\"train_seed\": train_seed},\n",
        "      )\n",
        "      experiments.append(ex)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "executionInfo": {
          "elapsed": 1497622,
          "status": "ok",
          "timestamp": 1633386085522,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "Xiyj1b2lvX4N",
        "outputId": "5f62e7a2-ec5c-4c59-ce88-3fdcd5b51c54"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "====================\n",
            "Training: noise_scale=0 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.12528412777995082/s]: {'loss': 0.6778644919395447}\n",
            "1 [41.9103499270569/s]: {'loss': 0.6867863535881042}\n",
            "2 [42.555412384208765/s]: {'loss': 0.691532552242279}\n",
            "4 [75.78948890073453/s]: {'loss': 0.6750220060348511}\n",
            "8 [122.07737701100916/s]: {'loss': 0.6820454001426697}\n",
            "16 [176.57067682625214/s]: {'loss': 0.6700646877288818}\n",
            "32 [231.5991482694478/s]: {'loss': 0.6719938516616821}\n",
            "64 [266.8015632267991/s]: {'loss': 0.6711649894714355}\n",
            "128 [298.75290032497884/s]: {'loss': 0.6443466544151306}\n",
            "256 [305.49871255674/s]: {'loss': 0.5457638502120972}\n",
            "512 [323.0133210354194/s]: {'loss': 0.35362526774406433}\n",
            "1000 [339.0795859983457/s]: {'loss': 0.3099435567855835}\n",
            "1024 [264.1845504600639/s]: {'loss': 0.3029372990131378}\n",
            "2000 [329.923026570403/s]: {'loss': 0.3016328513622284}\n",
            "2048 [276.96791421044304/s]: {'loss': 0.3214965760707855}\n",
            "3000 [324.09867979973137/s]: {'loss': 0.28353044390678406}\n",
            "4000 [320.81498539495055/s]: {'loss': 0.27721697092056274}\n",
            "4096 [302.3332630034562/s]: {'loss': 0.2822767496109009}\n",
            "5000 [326.7130072014454/s]: {'loss': 0.2755679488182068}\n",
            "6000 [327.1348349091058/s]: {'loss': 0.2667458653450012}\n",
            "7000 [324.84979690226976/s]: {'loss': 0.2500084340572357}\n",
            "8000 [324.52119184884134/s]: {'loss': 0.26756373047828674}\n",
            "8192 [303.80115045903676/s]: {'loss': 0.266681432723999}\n",
            "9000 [323.363011253117/s]: {'loss': 0.25787976384162903}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=0 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.24819, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.14268002309792893/s]: {'loss': 0.6751587390899658}\n",
            "1 [41.671756862823024/s]: {'loss': 0.6815772652626038}\n",
            "2 [41.779265280102/s]: {'loss': 0.6847824454307556}\n",
            "4 [74.63904830543915/s]: {'loss': 0.6821953058242798}\n",
            "8 [122.94153079544205/s]: {'loss': 0.6738671064376831}\n",
            "16 [171.69539988742773/s]: {'loss': 0.6759743690490723}\n",
            "32 [218.67685068722588/s]: {'loss': 0.6715565323829651}\n",
            "64 [256.52745169243707/s]: {'loss': 0.6769556999206543}\n",
            "128 [290.4306396311888/s]: {'loss': 0.6676367521286011}\n",
            "256 [294.26710530498775/s]: {'loss': 0.542523980140686}\n",
            "512 [306.2374880890892/s]: {'loss': 0.34443432092666626}\n",
            "1000 [314.4712412548734/s]: {'loss': 0.3119208514690399}\n",
            "1024 [255.50356870907152/s]: {'loss': 0.31086182594299316}\n",
            "2000 [332.78509512196985/s]: {'loss': 0.2993178367614746}\n",
            "2048 [291.7096039909528/s]: {'loss': 0.29650798439979553}\n",
            "3000 [328.07636458109266/s]: {'loss': 0.27495989203453064}\n",
            "4000 [321.55150465460747/s]: {'loss': 0.2820451259613037}\n",
            "4096 [305.85288641868965/s]: {'loss': 0.27705472707748413}\n",
            "5000 [321.8987199102676/s]: {'loss': 0.28142356872558594}\n",
            "6000 [319.2216245178535/s]: {'loss': 0.2824358344078064}\n",
            "7000 [300.971873511709/s]: {'loss': 0.26730871200561523}\n",
            "8000 [317.57513147482814/s]: {'loss': 0.26259076595306396}\n",
            "8192 [315.6657928075963/s]: {'loss': 0.27226394414901733}\n",
            "9000 [333.0001984835854/s]: {'loss': 0.2792382836341858}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=0 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.24667, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.1294222026056164/s]: {'loss': 0.6774901151657104}\n",
            "1 [42.1686422359624/s]: {'loss': 0.6699276566505432}\n",
            "2 [42.88303615246197/s]: {'loss': 0.6767013072967529}\n",
            "4 [75.11423915184727/s]: {'loss': 0.6764981150627136}\n",
            "8 [123.2739590145264/s]: {'loss': 0.6797263026237488}\n",
            "16 [181.08263940981874/s]: {'loss': 0.6842806339263916}\n",
            "32 [238.35928181995774/s]: {'loss': 0.6785756349563599}\n",
            "64 [276.47991562502574/s]: {'loss': 0.6785762906074524}\n",
            "128 [302.0224686738082/s]: {'loss': 0.6568936109542847}\n",
            "256 [302.3182244866816/s]: {'loss': 0.5548089146614075}\n",
            "512 [318.20229492650543/s]: {'loss': 0.35252705216407776}\n",
            "1000 [322.52971717475725/s]: {'loss': 0.3010171949863434}\n",
            "1024 [249.49449895778858/s]: {'loss': 0.3218088150024414}\n",
            "2000 [330.89887945251235/s]: {'loss': 0.29707831144332886}\n",
            "2048 [283.7432131894275/s]: {'loss': 0.2985507547855377}\n",
            "3000 [329.5364006498663/s]: {'loss': 0.30440860986709595}\n",
            "4000 [333.07360663189314/s]: {'loss': 0.27764391899108887}\n",
            "4096 [303.1175611067072/s]: {'loss': 0.2799648642539978}\n",
            "5000 [332.70551753239636/s]: {'loss': 0.28276583552360535}\n",
            "6000 [338.6733365028836/s]: {'loss': 0.2577197551727295}\n",
            "7000 [341.5658527309647/s]: {'loss': 0.2698662579059601}\n",
            "8000 [343.2393901583852/s]: {'loss': 0.2588029205799103}\n",
            "8192 [330.76082932292934/s]: {'loss': 0.25468048453330994}\n",
            "9000 [342.1818344836332/s]: {'loss': 0.2679084241390228}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=0 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.24633999, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.1389511742279029/s]: {'loss': 0.6752521991729736}\n",
            "1 [41.36802446000592/s]: {'loss': 0.6792256236076355}\n",
            "2 [41.694955017645015/s]: {'loss': 0.6877394318580627}\n",
            "4 [73.50626089852/s]: {'loss': 0.6752271056175232}\n",
            "8 [119.72779173327244/s]: {'loss': 0.6694813370704651}\n",
            "16 [170.67013895953286/s]: {'loss': 0.6829689145088196}\n",
            "32 [221.33895347878428/s]: {'loss': 0.6838847398757935}\n",
            "64 [259.2211799379265/s]: {'loss': 0.6613867282867432}\n",
            "128 [280.21777268822166/s]: {'loss': 0.6408784985542297}\n",
            "256 [291.97141798987263/s]: {'loss': 0.5403228998184204}\n",
            "512 [308.27206814163713/s]: {'loss': 0.34153252840042114}\n",
            "1000 [306.04966185048454/s]: {'loss': 0.313431054353714}\n",
            "1024 [244.4161883395006/s]: {'loss': 0.31024253368377686}\n",
            "2000 [311.4139505763832/s]: {'loss': 0.28947824239730835}\n",
            "2048 [272.8534998698933/s]: {'loss': 0.3101259171962738}\n",
            "3000 [304.29074539385186/s]: {'loss': 0.29418686032295227}\n",
            "4000 [328.5244875949482/s]: {'loss': 0.26117923855781555}\n",
            "4096 [311.85358293814636/s]: {'loss': 0.26591694355010986}\n",
            "5000 [338.55058931263795/s]: {'loss': 0.2762826681137085}\n",
            "6000 [344.93976163215575/s]: {'loss': 0.2726495563983917}\n",
            "7000 [336.7670808585477/s]: {'loss': 0.26331883668899536}\n",
            "8000 [325.2836758206885/s]: {'loss': 0.2800968885421753}\n",
            "8192 [336.52275992448045/s]: {'loss': 0.27840498089790344}\n",
            "9000 [356.8062263940773/s]: {'loss': 0.2804807424545288}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=0 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.2475, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.14357966426702212/s]: {'loss': 0.6703366637229919}\n",
            "1 [41.14725214354386/s]: {'loss': 0.680502712726593}\n",
            "2 [42.138562932004504/s]: {'loss': 0.6687763333320618}\n",
            "4 [74.42515437575413/s]: {'loss': 0.6825559735298157}\n",
            "8 [120.56495275052998/s]: {'loss': 0.6787006258964539}\n",
            "16 [178.4800719145111/s]: {'loss': 0.6757870316505432}\n",
            "32 [234.60290225937152/s]: {'loss': 0.6782228350639343}\n",
            "64 [271.7332102394662/s]: {'loss': 0.6639825701713562}\n",
            "128 [296.8410683539993/s]: {'loss': 0.643162727355957}\n",
            "256 [302.287414387611/s]: {'loss': 0.5449430346488953}\n",
            "512 [311.52162215874887/s]: {'loss': 0.3423238694667816}\n",
            "1000 [327.2367969866632/s]: {'loss': 0.30863243341445923}\n",
            "1024 [257.03804630925265/s]: {'loss': 0.3067740201950073}\n",
            "2000 [322.633200451537/s]: {'loss': 0.3028731942176819}\n",
            "2048 [280.5433321581704/s]: {'loss': 0.29573309421539307}\n",
            "3000 [322.24424395730114/s]: {'loss': 0.27834513783454895}\n",
            "4000 [320.12133505192094/s]: {'loss': 0.29998666048049927}\n",
            "4096 [296.65528434919065/s]: {'loss': 0.28638696670532227}\n",
            "5000 [322.0953840126417/s]: {'loss': 0.2811140716075897}\n",
            "6000 [318.6251705060471/s]: {'loss': 0.26592257618904114}\n",
            "7000 [305.6327962047734/s]: {'loss': 0.26548880338668823}\n",
            "8000 [302.72210010685444/s]: {'loss': 0.2757004499435425}\n",
            "8192 [317.19486158628473/s]: {'loss': 0.2828007638454437}\n",
            "9000 [321.337115297146/s]: {'loss': 0.2536584436893463}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=0 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.24787, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.1429876136156069/s]: {'loss': 0.6791967153549194}\n",
            "1 [41.82425910414423/s]: {'loss': 0.6871985793113708}\n",
            "2 [42.182637380320216/s]: {'loss': 0.6923996806144714}\n",
            "4 [73.84728066623236/s]: {'loss': 0.6761195659637451}\n",
            "8 [121.71073306975225/s]: {'loss': 0.6828919649124146}\n",
            "16 [172.8558505651202/s]: {'loss': 0.670183539390564}\n",
            "32 [227.36975060392407/s]: {'loss': 0.6735227704048157}\n",
            "64 [276.95743631542564/s]: {'loss': 0.6728931069374084}\n",
            "128 [288.1266043977511/s]: {'loss': 0.6445263028144836}\n",
            "256 [320.09837312768974/s]: {'loss': 0.549027144908905}\n",
            "512 [317.1300637454741/s]: {'loss': 0.42028501629829407}\n",
            "1000 [318.95157042506247/s]: {'loss': 0.3905082643032074}\n",
            "1024 [246.69171896787918/s]: {'loss': 0.37101662158966064}\n",
            "2000 [322.40268447813/s]: {'loss': 0.3972264528274536}\n",
            "2048 [282.9257828968448/s]: {'loss': 0.4112754762172699}\n",
            "3000 [324.0299300503633/s]: {'loss': 0.371059387922287}\n",
            "4000 [316.48778052582213/s]: {'loss': 0.37744447588920593}\n",
            "4096 [294.61019717106205/s]: {'loss': 0.38832366466522217}\n",
            "5000 [316.74931276946427/s]: {'loss': 0.36807870864868164}\n",
            "6000 [306.2131205659261/s]: {'loss': 0.39191895723342896}\n",
            "7000 [334.9214999786397/s]: {'loss': 0.37276947498321533}\n",
            "8000 [342.4041264462138/s]: {'loss': 0.3834391236305237}\n",
            "8192 [330.2606992465539/s]: {'loss': 0.3762027621269226}\n",
            "9000 [340.6686511039924/s]: {'loss': 0.39483222365379333}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.26311997, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.1410847114276657/s]: {'loss': 0.6753266453742981}\n",
            "1 [41.389251810771874/s]: {'loss': 0.6822429895401001}\n",
            "2 [42.306879160782735/s]: {'loss': 0.6852702498435974}\n",
            "4 [75.37340737146657/s]: {'loss': 0.6829155087471008}\n",
            "8 [119.95978749722931/s]: {'loss': 0.6739737391471863}\n",
            "16 [174.89657185449278/s]: {'loss': 0.6768149733543396}\n",
            "32 [175.55724607729778/s]: {'loss': 0.6724549531936646}\n",
            "64 [260.244519978206/s]: {'loss': 0.6781030297279358}\n",
            "128 [285.7386454115413/s]: {'loss': 0.667540431022644}\n",
            "256 [288.237362826157/s]: {'loss': 0.5479546189308167}\n",
            "512 [298.6443803252279/s]: {'loss': 0.40348783135414124}\n",
            "1000 [306.26461909726754/s]: {'loss': 0.3945035934448242}\n",
            "1024 [257.10303962158616/s]: {'loss': 0.39348044991493225}\n",
            "2000 [314.24253946224036/s]: {'loss': 0.38413819670677185}\n",
            "2048 [275.36737060947587/s]: {'loss': 0.3868499994277954}\n",
            "3000 [319.0073285817244/s]: {'loss': 0.3749147951602936}\n",
            "4000 [311.2891662300226/s]: {'loss': 0.38773542642593384}\n",
            "4096 [280.0707137312511/s]: {'loss': 0.36765265464782715}\n",
            "5000 [303.48278697132145/s]: {'loss': 0.38752108812332153}\n",
            "6000 [312.3135859817254/s]: {'loss': 0.3974025547504425}\n",
            "7000 [323.6332693726846/s]: {'loss': 0.37590911984443665}\n",
            "8000 [328.4629736133508/s]: {'loss': 0.38851240277290344}\n",
            "8192 [314.9000007820626/s]: {'loss': 0.3807968199253082}\n",
            "9000 [332.92312722014395/s]: {'loss': 0.3890623450279236}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.26292002, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.14287553264883177/s]: {'loss': 0.6777128577232361}\n",
            "1 [40.81173860584595/s]: {'loss': 0.670644998550415}\n",
            "2 [41.8334363966408/s]: {'loss': 0.6770256161689758}\n",
            "4 [73.21371653996876/s]: {'loss': 0.6766787767410278}\n",
            "8 [120.06108530904042/s]: {'loss': 0.6800974607467651}\n",
            "16 [174.02938659502408/s]: {'loss': 0.6862359642982483}\n",
            "32 [231.7519097150277/s]: {'loss': 0.6793556809425354}\n",
            "64 [275.61806271433557/s]: {'loss': 0.6790550351142883}\n",
            "128 [288.1451613249492/s]: {'loss': 0.6575847864151001}\n",
            "256 [306.5684300207797/s]: {'loss': 0.5588451623916626}\n",
            "512 [313.37079043878373/s]: {'loss': 0.4183349907398224}\n",
            "1000 [319.9936264557119/s]: {'loss': 0.3831152319908142}\n",
            "1024 [252.9450981870265/s]: {'loss': 0.4083692729473114}\n",
            "2000 [326.73232248134036/s]: {'loss': 0.385088711977005}\n",
            "2048 [285.04281023866525/s]: {'loss': 0.39902472496032715}\n",
            "3000 [328.42430192373996/s]: {'loss': 0.3908338248729706}\n",
            "4000 [322.8479250172689/s]: {'loss': 0.3820372223854065}\n",
            "4096 [308.95607510339374/s]: {'loss': 0.38595566153526306}\n",
            "5000 [330.6738454151015/s]: {'loss': 0.38758307695388794}\n",
            "6000 [339.63716520854877/s]: {'loss': 0.37182649970054626}\n",
            "7000 [334.1190217124183/s]: {'loss': 0.3782968819141388}\n",
            "8000 [331.12669256909714/s]: {'loss': 0.3690902292728424}\n",
            "8192 [324.9961632756836/s]: {'loss': 0.3663868010044098}\n",
            "9000 [334.7330067321976/s]: {'loss': 0.3863902986049652}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.26527998, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.14452488681858/s]: {'loss': 0.6762105822563171}\n",
            "1 [40.92842436011281/s]: {'loss': 0.6795246601104736}\n",
            "2 [42.06924774322969/s]: {'loss': 0.6879345774650574}\n",
            "4 [73.65664512503513/s]: {'loss': 0.6749625205993652}\n",
            "8 [120.02844530931412/s]: {'loss': 0.6702699661254883}\n",
            "16 [173.97344338962313/s]: {'loss': 0.6840913891792297}\n",
            "32 [226.01969580622128/s]: {'loss': 0.6850143671035767}\n",
            "64 [264.5148173768405/s]: {'loss': 0.6627203822135925}\n",
            "128 [295.8957667361849/s]: {'loss': 0.6415890455245972}\n",
            "256 [305.48584896266317/s]: {'loss': 0.545907735824585}\n",
            "512 [326.99742480905337/s]: {'loss': 0.41368165612220764}\n",
            "1000 [332.6426400784891/s]: {'loss': 0.3869350254535675}\n",
            "1024 [262.2293611201563/s]: {'loss': 0.3740127682685852}\n",
            "2000 [333.05091521377335/s]: {'loss': 0.38017597794532776}\n",
            "2048 [291.7218619046791/s]: {'loss': 0.38907748460769653}\n",
            "3000 [332.9699030362474/s]: {'loss': 0.3893621265888214}\n",
            "4000 [335.2089233596433/s]: {'loss': 0.3696267604827881}\n",
            "4096 [315.96303736440336/s]: {'loss': 0.36258721351623535}\n",
            "5000 [333.6581181779463/s]: {'loss': 0.37157928943634033}\n",
            "6000 [330.006234572894/s]: {'loss': 0.38112613558769226}\n",
            "7000 [321.13423065750567/s]: {'loss': 0.37869560718536377}\n",
            "8000 [323.1124271942339/s]: {'loss': 0.3925543427467346}\n",
            "8192 [315.14461513175274/s]: {'loss': 0.3845435678958893}\n",
            "9000 [322.0930753647001/s]: {'loss': 0.3843497633934021}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.26585, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.14484086202590674/s]: {'loss': 0.6711835265159607}\n",
            "1 [41.76096220478713/s]: {'loss': 0.6806416511535645}\n",
            "2 [42.15126726026571/s]: {'loss': 0.669714093208313}\n",
            "4 [75.08667281303985/s]: {'loss': 0.6829459071159363}\n",
            "8 [121.87429899753015/s]: {'loss': 0.6799175143241882}\n",
            "16 [176.00847666556513/s]: {'loss': 0.6769121289253235}\n",
            "32 [227.61421264703088/s]: {'loss': 0.6791675090789795}\n",
            "64 [263.29385362638396/s]: {'loss': 0.6650636792182922}\n",
            "128 [270.03242777787835/s]: {'loss': 0.6445701718330383}\n",
            "256 [304.10585654987403/s]: {'loss': 0.5474985241889954}\n",
            "512 [329.7508044598925/s]: {'loss': 0.40643125772476196}\n",
            "1000 [336.454014436081/s]: {'loss': 0.3912660777568817}\n",
            "1024 [263.6862901240066/s]: {'loss': 0.3807879090309143}\n",
            "2000 [333.2276503589756/s]: {'loss': 0.3990030884742737}\n",
            "2048 [289.5972957227828/s]: {'loss': 0.38231635093688965}\n",
            "3000 [351.8188696162289/s]: {'loss': 0.3675406575202942}\n",
            "4000 [354.7386613857233/s]: {'loss': 0.3918764889240265}\n",
            "4096 [331.50083852212634/s]: {'loss': 0.38848549127578735}\n",
            "5000 [353.8578081081591/s]: {'loss': 0.38627082109451294}\n",
            "6000 [344.5255781433175/s]: {'loss': 0.3744766116142273}\n",
            "7000 [327.5429181708874/s]: {'loss': 0.36976751685142517}\n",
            "8000 [331.3449338314049/s]: {'loss': 0.38102012872695923}\n",
            "8192 [323.0336312535876/s]: {'loss': 0.39409923553466797}\n",
            "9000 [339.43046272847596/s]: {'loss': 0.3654342591762543}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=0.1 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.26689, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.1447100144216504/s]: {'loss': 0.6912623643875122}\n",
            "1 [41.79133744507438/s]: {'loss': 0.6959314346313477}\n",
            "2 [42.34703067261676/s]: {'loss': 0.7022136449813843}\n",
            "4 [74.04609450167271/s]: {'loss': 0.686761736869812}\n",
            "8 [121.23054244856964/s]: {'loss': 0.6922426223754883}\n",
            "16 [176.58926184386414/s]: {'loss': 0.6784315705299377}\n",
            "32 [230.37556899712325/s]: {'loss': 0.6853987574577332}\n",
            "64 [281.5146255007656/s]: {'loss': 0.6866195797920227}\n",
            "128 [287.54667035157684/s]: {'loss': 0.6553018689155579}\n",
            "256 [313.1614936903494/s]: {'loss': 0.5940157175064087}\n",
            "512 [320.6344187357636/s]: {'loss': 0.5117038488388062}\n",
            "1000 [320.7278500510358/s]: {'loss': 0.5051208734512329}\n",
            "1024 [258.26663758931664/s]: {'loss': 0.4821279048919678}\n",
            "2000 [328.03145852590046/s]: {'loss': 0.49934422969818115}\n",
            "2048 [290.41985153470876/s]: {'loss': 0.510267972946167}\n",
            "3000 [307.21879841916456/s]: {'loss': 0.46432849764823914}\n",
            "4000 [301.0492319781549/s]: {'loss': 0.46744102239608765}\n",
            "4096 [273.9191344591152/s]: {'loss': 0.4935998022556305}\n",
            "5000 [305.21192657818034/s]: {'loss': 0.46880194544792175}\n",
            "6000 [331.65601145419197/s]: {'loss': 0.4894542396068573}\n",
            "7000 [315.6152614277327/s]: {'loss': 0.4571116268634796}\n",
            "8000 [330.291053997807/s]: {'loss': 0.4647609293460846}\n",
            "8192 [333.1837133906274/s]: {'loss': 0.47486644983291626}\n",
            "9000 [337.5257633226661/s]: {'loss': 0.4835243225097656}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.27093002, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.14545177622621197/s]: {'loss': 0.6833089590072632}\n",
            "1 [41.084376530512294/s]: {'loss': 0.6928502321243286}\n",
            "2 [42.200887422149336/s]: {'loss': 0.6918851137161255}\n",
            "4 [74.06505385837895/s]: {'loss': 0.6923362016677856}\n",
            "8 [120.89421802040698/s]: {'loss': 0.6814061999320984}\n",
            "16 [177.39494900899282/s]: {'loss': 0.686772882938385}\n",
            "32 [229.9863397248068/s]: {'loss': 0.6823239922523499}\n",
            "64 [274.1207197271409/s]: {'loss': 0.6898558139801025}\n",
            "128 [296.8489466240104/s]: {'loss': 0.677595853805542}\n",
            "256 [305.09576286597564/s]: {'loss': 0.5980749130249023}\n",
            "512 [325.16091582969585/s]: {'loss': 0.49323058128356934}\n",
            "1000 [329.59289884764405/s]: {'loss': 0.49729159474372864}\n",
            "1024 [266.9972309161318/s]: {'loss': 0.5040351152420044}\n",
            "2000 [346.31429723413225/s]: {'loss': 0.4895819127559662}\n",
            "2048 [310.18274483944424/s]: {'loss': 0.4856027066707611}\n",
            "3000 [352.75129082260156/s]: {'loss': 0.46210649609565735}\n",
            "4000 [353.84543221524933/s]: {'loss': 0.4828745424747467}\n",
            "4096 [328.77618818603366/s]: {'loss': 0.47097840905189514}\n",
            "5000 [340.0877112446832/s]: {'loss': 0.4812358319759369}\n",
            "6000 [335.00434659398593/s]: {'loss': 0.48785704374313354}\n",
            "7000 [341.6152604456526/s]: {'loss': 0.47348257899284363}\n",
            "8000 [341.6903730786401/s]: {'loss': 0.4929342567920685}\n",
            "8192 [331.15826673964455/s]: {'loss': 0.47434553503990173}\n",
            "9000 [340.06342623824463/s]: {'loss': 0.4914403259754181}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.27099997, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.14708975742084004/s]: {'loss': 0.6853891611099243}\n",
            "1 [40.79228951284271/s]: {'loss': 0.6818666458129883}\n",
            "2 [41.69661301706912/s]: {'loss': 0.6859561800956726}\n",
            "4 [73.76351309761438/s]: {'loss': 0.6848745942115784}\n",
            "8 [117.46365233951089/s]: {'loss': 0.6886323690414429}\n",
            "16 [173.24944107973585/s]: {'loss': 0.6996292471885681}\n",
            "32 [227.50926867634894/s]: {'loss': 0.6889968514442444}\n",
            "64 [263.598942601154/s]: {'loss': 0.6886272430419922}\n",
            "128 [294.62981426724355/s]: {'loss': 0.6693510413169861}\n",
            "256 [290.5946020846651/s]: {'loss': 0.6040826439857483}\n",
            "512 [303.64645018689777/s]: {'loss': 0.5047895908355713}\n",
            "1000 [327.36921307736475/s]: {'loss': 0.4975864291191101}\n",
            "1024 [258.5578563979801/s]: {'loss': 0.5111371874809265}\n",
            "2000 [332.6421535391226/s]: {'loss': 0.49611371755599976}\n",
            "2048 [298.83493814058085/s]: {'loss': 0.4948292374610901}\n",
            "3000 [343.48904850414533/s]: {'loss': 0.49142056703567505}\n",
            "4000 [341.73653126874467/s]: {'loss': 0.49326202273368835}\n",
            "4096 [317.9874385491074/s]: {'loss': 0.47786372900009155}\n",
            "5000 [334.8619129088085/s]: {'loss': 0.4857775568962097}\n",
            "6000 [332.4488225237172/s]: {'loss': 0.46416762471199036}\n",
            "7000 [335.96634748705935/s]: {'loss': 0.4792647957801819}\n",
            "8000 [335.2185680043561/s]: {'loss': 0.462933212518692}\n",
            "8192 [317.80171508174857/s]: {'loss': 0.47977444529533386}\n",
            "9000 [330.41323151385916/s]: {'loss': 0.48596295714378357}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.27078, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.1457234450083262/s]: {'loss': 0.6864739656448364}\n",
            "1 [41.55080044381043/s]: {'loss': 0.6886701583862305}\n",
            "2 [42.277880816063224/s]: {'loss': 0.6943818926811218}\n",
            "4 [74.55546371594899/s]: {'loss': 0.6809266209602356}\n",
            "8 [121.78848261794319/s]: {'loss': 0.6797215938568115}\n",
            "16 [179.97539141488636/s]: {'loss': 0.6951749920845032}\n",
            "32 [234.6890483584428/s]: {'loss': 0.6949675679206848}\n",
            "64 [276.27731120113293/s]: {'loss': 0.6761077046394348}\n",
            "128 [289.80166322455693/s]: {'loss': 0.6563292741775513}\n",
            "256 [327.8771185069149/s]: {'loss': 0.5999359488487244}\n",
            "512 [350.87389063369534/s]: {'loss': 0.5050531625747681}\n",
            "1000 [354.64657276861897/s]: {'loss': 0.5002110004425049}\n",
            "1024 [275.813277292044/s]: {'loss': 0.48719945549964905}\n",
            "2000 [357.1963007828905/s]: {'loss': 0.48172202706336975}\n",
            "2048 [310.29556950904873/s]: {'loss': 0.4777378439903259}\n",
            "3000 [355.69482013481024/s]: {'loss': 0.5012809038162231}\n",
            "4000 [355.0365959994153/s]: {'loss': 0.471211314201355}\n",
            "4096 [323.3473871023437/s]: {'loss': 0.47025859355926514}\n",
            "5000 [336.78365404301513/s]: {'loss': 0.46733158826828003}\n",
            "6000 [340.64787927547485/s]: {'loss': 0.4754503071308136}\n",
            "7000 [340.1492882766321/s]: {'loss': 0.48207223415374756}\n",
            "8000 [341.50619861290465/s]: {'loss': 0.48522329330444336}\n",
            "8192 [329.15110830633006/s]: {'loss': 0.4787966310977936}\n",
            "9000 [322.0967794576434/s]: {'loss': 0.48309364914894104}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.27034, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.1457612239997192/s]: {'loss': 0.6817494034767151}\n",
            "1 [41.57386408690825/s]: {'loss': 0.6882386207580566}\n",
            "2 [42.09838303339322/s]: {'loss': 0.6793913245201111}\n",
            "4 [74.8682047391673/s]: {'loss': 0.690763533115387}\n",
            "8 [121.25069380203516/s]: {'loss': 0.6914764642715454}\n",
            "16 [174.7963513802139/s]: {'loss': 0.6878333687782288}\n",
            "32 [233.03711780536506/s]: {'loss': 0.6891579031944275}\n",
            "64 [279.91884676988786/s]: {'loss': 0.67647784948349}\n",
            "128 [307.4685940095069/s]: {'loss': 0.6592375040054321}\n",
            "256 [312.05097709390344/s]: {'loss': 0.5942762494087219}\n",
            "512 [330.870566454723/s]: {'loss': 0.49578753113746643}\n",
            "1000 [336.592280753454/s]: {'loss': 0.49991121888160706}\n",
            "1024 [262.7276110735566/s]: {'loss': 0.4723520874977112}\n",
            "2000 [338.2090469029056/s]: {'loss': 0.49981555342674255}\n",
            "2048 [297.3431578014577/s]: {'loss': 0.49861156940460205}\n",
            "3000 [336.25837454830554/s]: {'loss': 0.4712305963039398}\n",
            "4000 [333.6538108156139/s]: {'loss': 0.48998045921325684}\n",
            "4096 [317.28234162208673/s]: {'loss': 0.48454174399375916}\n",
            "5000 [340.2126395610422/s]: {'loss': 0.4710918962955475}\n",
            "6000 [335.78423111744877/s]: {'loss': 0.4708729386329651}\n",
            "7000 [332.77296016590157/s]: {'loss': 0.4642241299152374}\n",
            "8000 [337.7585298180754/s]: {'loss': 0.4712062180042267}\n",
            "8192 [328.4579760247559/s]: {'loss': 0.4883255362510681}\n",
            "9000 [351.35217621822045/s]: {'loss': 0.45925068855285645}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=0.4 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.27412, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.14545843465815878/s]: {'loss': 0.7952790856361389}\n",
            "1 [41.419906579895915/s]: {'loss': 0.7874385714530945}\n",
            "2 [42.258712582994974/s]: {'loss': 0.7976900339126587}\n",
            "4 [74.20920028308564/s]: {'loss': 0.7822471857070923}\n",
            "8 [119.86808036352205/s]: {'loss': 0.7760321497917175}\n",
            "16 [174.34134175741957/s]: {'loss': 0.7702764272689819}\n",
            "32 [227.21193940912383/s]: {'loss': 0.7806834578514099}\n",
            "64 [271.1540464699073/s]: {'loss': 0.7845713496208191}\n",
            "128 [295.7181134266272/s]: {'loss': 0.7427394390106201}\n",
            "256 [345.8566855612955/s]: {'loss': 0.7792511582374573}\n",
            "512 [353.70951424072524/s]: {'loss': 0.778278112411499}\n",
            "1000 [358.4374245017598/s]: {'loss': 0.7439788579940796}\n",
            "1024 [276.8243408243408/s]: {'loss': 0.7226201891899109}\n",
            "2000 [361.20184926166826/s]: {'loss': 0.7429406642913818}\n",
            "2048 [315.0788954758581/s]: {'loss': 0.7307410836219788}\n",
            "3000 [346.9699530836271/s]: {'loss': 0.7099047899246216}\n",
            "4000 [339.1393600029238/s]: {'loss': 0.7374323606491089}\n",
            "4096 [322.2254015481742/s]: {'loss': 0.7329055070877075}\n",
            "5000 [344.2704486151735/s]: {'loss': 0.755747377872467}\n",
            "6000 [342.88830164462456/s]: {'loss': 0.7712864279747009}\n",
            "7000 [339.1075810761285/s]: {'loss': 0.7274523377418518}\n",
            "8000 [341.8379950413448/s]: {'loss': 0.7331295609474182}\n",
            "8192 [317.8240406154837/s]: {'loss': 0.7278279066085815}\n",
            "9000 [335.18073187144716/s]: {'loss': 0.7394605875015259}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.28306, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.1438068073290624/s]: {'loss': 0.7695844769477844}\n",
            "1 [41.72025384447053/s]: {'loss': 0.796623170375824}\n",
            "2 [42.33292625076959/s]: {'loss': 0.7593512535095215}\n",
            "4 [74.98733317242797/s]: {'loss': 0.7777453660964966}\n",
            "8 [122.04984650303356/s]: {'loss': 0.7626955509185791}\n",
            "16 [176.96085225325/s]: {'loss': 0.7744362354278564}\n",
            "32 [230.37477815195862/s]: {'loss': 0.7675815224647522}\n",
            "64 [272.51998554332334/s]: {'loss': 0.7889443039894104}\n",
            "128 [283.9634281410363/s]: {'loss': 0.77959805727005}\n",
            "256 [310.70680628878256/s]: {'loss': 0.7689205408096313}\n",
            "512 [322.70713116811106/s]: {'loss': 0.7482859492301941}\n",
            "1000 [323.37584595405036/s]: {'loss': 0.7452600002288818}\n",
            "1024 [251.207949750073/s]: {'loss': 0.7546849250793457}\n",
            "2000 [327.5216765333164/s]: {'loss': 0.7344048619270325}\n",
            "2048 [288.2497433584606/s]: {'loss': 0.723682165145874}\n",
            "3000 [331.62936566825147/s]: {'loss': 0.7044005990028381}\n",
            "4000 [330.11207492198184/s]: {'loss': 0.7244722247123718}\n",
            "4096 [310.46448172541784/s]: {'loss': 0.7300562262535095}\n",
            "5000 [325.80317974348714/s]: {'loss': 0.7350255846977234}\n",
            "6000 [327.23707949981764/s]: {'loss': 0.7144607305526733}\n",
            "7000 [329.5506375525512/s]: {'loss': 0.728111743927002}\n",
            "8000 [334.8363687687848/s]: {'loss': 0.7437761425971985}\n",
            "8192 [319.90534721949115/s]: {'loss': 0.7262188792228699}\n",
            "9000 [332.1068171513055/s]: {'loss': 0.755730390548706}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.28369, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.13878823096248222/s]: {'loss': 0.7762120366096497}\n",
            "1 [42.232756711037716/s]: {'loss': 0.7861769199371338}\n",
            "2 [42.75975124885309/s]: {'loss': 0.7790964245796204}\n",
            "4 [76.25799296382826/s]: {'loss': 0.7766122817993164}\n",
            "8 [124.88529935016116/s]: {'loss': 0.7742831110954285}\n",
            "16 [185.55993540823323/s]: {'loss': 0.7927002310752869}\n",
            "32 [245.6310676768786/s]: {'loss': 0.7762436270713806}\n",
            "64 [288.774415642535/s]: {'loss': 0.7742488384246826}\n",
            "128 [317.8104944118204/s]: {'loss': 0.7624876499176025}\n",
            "256 [330.0804569362767/s]: {'loss': 0.7588629722595215}\n",
            "512 [349.408863712096/s]: {'loss': 0.7662752270698547}\n",
            "1000 [351.85299470884917/s]: {'loss': 0.7384553551673889}\n",
            "1024 [272.87642892189416/s]: {'loss': 0.7445874810218811}\n",
            "2000 [349.8037546619671/s]: {'loss': 0.7566205859184265}\n",
            "2048 [308.6576652127586/s]: {'loss': 0.7491276264190674}\n",
            "3000 [338.1569089116325/s]: {'loss': 0.7535865902900696}\n",
            "4000 [329.73043385496516/s]: {'loss': 0.7437158823013306}\n",
            "4096 [312.93210674347233/s]: {'loss': 0.7449060082435608}\n",
            "5000 [333.59444570404366/s]: {'loss': 0.7410797476768494}\n",
            "6000 [332.3596498352784/s]: {'loss': 0.7341313362121582}\n",
            "7000 [326.3806480419592/s]: {'loss': 0.7481652498245239}\n",
            "8000 [322.0818154452915/s]: {'loss': 0.7297245860099792}\n",
            "8192 [314.0913568420905/s]: {'loss': 0.7420705556869507}\n",
            "9000 [302.8394034997858/s]: {'loss': 0.7443434596061707}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.28331, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.1437205097055026/s]: {'loss': 0.7712966203689575}\n",
            "1 [41.501053777272055/s]: {'loss': 0.7853220105171204}\n",
            "2 [42.183910126824166/s]: {'loss': 0.7683591842651367}\n",
            "4 [75.21728760367631/s]: {'loss': 0.7576626539230347}\n",
            "8 [122.06050200072754/s]: {'loss': 0.7718885540962219}\n",
            "16 [180.1000053673984/s]: {'loss': 0.7854214310646057}\n",
            "32 [237.09693192577834/s]: {'loss': 0.7718291878700256}\n",
            "64 [281.14724765549556/s]: {'loss': 0.7769519090652466}\n",
            "128 [306.9331616686086/s]: {'loss': 0.7667092084884644}\n",
            "256 [312.52963749487725/s]: {'loss': 0.7872204780578613}\n",
            "512 [325.196565292396/s]: {'loss': 0.7545278668403625}\n",
            "1000 [328.6522136918221/s]: {'loss': 0.7404307126998901}\n",
            "1024 [258.4032097833704/s]: {'loss': 0.7409607172012329}\n",
            "2000 [333.60837963499847/s]: {'loss': 0.7185765504837036}\n",
            "2048 [296.5726912221364/s]: {'loss': 0.7234906554222107}\n",
            "3000 [332.2403433419258/s]: {'loss': 0.7307619452476501}\n",
            "4000 [321.9916650583604/s]: {'loss': 0.7487282156944275}\n",
            "4096 [301.3036688940937/s]: {'loss': 0.7291644215583801}\n",
            "5000 [321.61838618711823/s]: {'loss': 0.7504630088806152}\n",
            "6000 [337.4314254929549/s]: {'loss': 0.7355906963348389}\n",
            "7000 [329.3936705711464/s]: {'loss': 0.7312521934509277}\n",
            "8000 [322.1553132303223/s]: {'loss': 0.7551323771476746}\n",
            "8192 [307.6178723309977/s]: {'loss': 0.6834374070167542}\n",
            "9000 [322.1546478373845/s]: {'loss': 0.7278028130531311}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.28325, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.08012006364900037/s]: {'loss': 0.7834509015083313}\n",
            "1 [41.366800469460415/s]: {'loss': 0.7683402299880981}\n",
            "2 [41.64486278247746/s]: {'loss': 0.767536997795105}\n",
            "4 [73.62755303555599/s]: {'loss': 0.7706196904182434}\n",
            "8 [118.50659734975842/s]: {'loss': 0.782244861125946}\n",
            "16 [177.11497492742149/s]: {'loss': 0.7863357067108154}\n",
            "32 [228.76877974283104/s]: {'loss': 0.7745170593261719}\n",
            "64 [268.6385467413364/s]: {'loss': 0.7693065404891968}\n",
            "128 [282.48721766848337/s]: {'loss': 0.7605487704277039}\n",
            "256 [319.6348927566535/s]: {'loss': 0.7663521766662598}\n",
            "512 [313.5090429981474/s]: {'loss': 0.7560682892799377}\n",
            "1000 [327.5698206657885/s]: {'loss': 0.7243963479995728}\n",
            "1024 [265.5098910142114/s]: {'loss': 0.6830374598503113}\n",
            "2000 [338.48850410670383/s]: {'loss': 0.7314758896827698}\n",
            "2048 [293.77577056705974/s]: {'loss': 0.7186813950538635}\n",
            "3000 [340.3901020511156/s]: {'loss': 0.7236977815628052}\n",
            "4000 [330.91586596590804/s]: {'loss': 0.7572899460792542}\n",
            "4096 [307.4296246357104/s]: {'loss': 0.7426583766937256}\n",
            "5000 [329.0944759981065/s]: {'loss': 0.7107945084571838}\n",
            "6000 [336.00558847185414/s]: {'loss': 0.7201234102249146}\n",
            "7000 [336.350296033367/s]: {'loss': 0.742408812046051}\n",
            "8000 [338.3200601672409/s]: {'loss': 0.7319242358207703}\n",
            "8192 [332.31792831348645/s]: {'loss': 0.7202880382537842}\n",
            "9000 [330.2676243557389/s]: {'loss': 0.7106196880340576}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=1.6 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.27905998, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.1401853675065381/s]: {'loss': 0.9206993579864502}\n",
            "1 [42.00226319109945/s]: {'loss': 0.8912227749824524}\n",
            "2 [42.29450735612944/s]: {'loss': 0.9075435996055603}\n",
            "4 [75.2287548875417/s]: {'loss': 0.9091507792472839}\n",
            "8 [121.8415506510672/s]: {'loss': 0.8740520477294922}\n",
            "16 [177.97455114434985/s]: {'loss': 0.8731563091278076}\n",
            "32 [231.4066840457373/s]: {'loss': 0.8705060482025146}\n",
            "64 [269.2642513657036/s]: {'loss': 0.86568284034729}\n",
            "128 [294.62334680402233/s]: {'loss': 0.8555610179901123}\n",
            "256 [303.52799715508354/s]: {'loss': 0.9088565111160278}\n",
            "512 [316.31773714215683/s]: {'loss': 0.8784981369972229}\n",
            "1000 [322.8371329041709/s]: {'loss': 0.9090613722801208}\n",
            "1024 [256.0950873890147/s]: {'loss': 0.8813209533691406}\n",
            "2000 [323.631088261169/s]: {'loss': 0.9060992002487183}\n",
            "2048 [283.6616573346371/s]: {'loss': 0.8896235227584839}\n",
            "3000 [326.1197337449669/s]: {'loss': 0.8540358543395996}\n",
            "4000 [328.6787468640059/s]: {'loss': 0.8782952427864075}\n",
            "4096 [309.435446351242/s]: {'loss': 0.8550123572349548}\n",
            "5000 [326.6504098323936/s]: {'loss': 0.9267138838768005}\n",
            "6000 [322.6884384280996/s]: {'loss': 0.9353981018066406}\n",
            "7000 [324.76628820276335/s]: {'loss': 0.9014380574226379}\n",
            "8000 [332.8901997529775/s]: {'loss': 0.8984715342521667}\n",
            "8192 [323.76858669475615/s]: {'loss': 0.8947272896766663}\n",
            "9000 [339.68974567253605/s]: {'loss': 0.8558949828147888}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.29815003, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.1438418378485674/s]: {'loss': 0.8795116543769836}\n",
            "1 [41.48586575933216/s]: {'loss': 0.9202945232391357}\n",
            "2 [42.20555857433235/s]: {'loss': 0.8412997722625732}\n",
            "4 [74.83614498675207/s]: {'loss': 0.8938816785812378}\n",
            "8 [123.18525643378979/s]: {'loss': 0.8838564157485962}\n",
            "16 [177.41652214373335/s]: {'loss': 0.854320228099823}\n",
            "32 [232.83013971432635/s]: {'loss': 0.8639616370201111}\n",
            "64 [274.3482085915654/s]: {'loss': 0.9218177795410156}\n",
            "128 [292.8551856559188/s]: {'loss': 0.9138071537017822}\n",
            "256 [323.3324572550484/s]: {'loss': 0.8721830248832703}\n",
            "512 [333.7959593516584/s]: {'loss': 0.8894574046134949}\n",
            "1000 [334.7071132567097/s]: {'loss': 0.9136710166931152}\n",
            "1024 [256.77643631688636/s]: {'loss': 0.9119910597801208}\n",
            "2000 [334.72298661252194/s]: {'loss': 0.905384361743927}\n",
            "2048 [283.3909405703668/s]: {'loss': 0.892166793346405}\n",
            "3000 [311.14597808235743/s]: {'loss': 0.8755940198898315}\n",
            "4000 [308.76275716494473/s]: {'loss': 0.8991944789886475}\n",
            "4096 [301.8455303750981/s]: {'loss': 0.8414226770401001}\n",
            "5000 [329.07508246077447/s]: {'loss': 0.9013189077377319}\n",
            "6000 [328.21976766479247/s]: {'loss': 0.8807023763656616}\n",
            "7000 [331.62978850684823/s]: {'loss': 0.8724161386489868}\n",
            "8000 [333.9239606593796/s]: {'loss': 0.881661057472229}\n",
            "8192 [324.43564356435644/s]: {'loss': 0.8906885385513306}\n",
            "9000 [325.9422234545649/s]: {'loss': 0.8802226781845093}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.29875, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.14274135561924567/s]: {'loss': 0.9280403256416321}\n",
            "1 [41.1323219346677/s]: {'loss': 0.912106990814209}\n",
            "2 [42.18900188096603/s]: {'loss': 0.8977769613265991}\n",
            "4 [74.28543090928412/s]: {'loss': 0.9116886258125305}\n",
            "8 [119.97694458548166/s]: {'loss': 0.8687161207199097}\n",
            "16 [174.94854950051095/s]: {'loss': 0.9070538282394409}\n",
            "32 [230.22856515534087/s]: {'loss': 0.8917065858840942}\n",
            "64 [273.26570052243454/s]: {'loss': 0.8519550561904907}\n",
            "128 [300.0633313808691/s]: {'loss': 0.8533068299293518}\n",
            "256 [309.7541864372358/s]: {'loss': 0.8700690269470215}\n",
            "512 [320.03254267679495/s]: {'loss': 0.8614068627357483}\n",
            "1000 [323.62402686868563/s]: {'loss': 0.9253107309341431}\n",
            "1024 [255.24571857456553/s]: {'loss': 0.9124627709388733}\n",
            "2000 [330.7946778270781/s]: {'loss': 0.9230257868766785}\n",
            "2048 [290.54558784054865/s]: {'loss': 0.9202447533607483}\n",
            "3000 [330.2490402832499/s]: {'loss': 0.905735433101654}\n",
            "4000 [338.3283017973013/s]: {'loss': 0.8478186130523682}\n",
            "4096 [311.7215222016121/s]: {'loss': 0.8965844511985779}\n",
            "5000 [339.10213154975895/s]: {'loss': 0.9188199043273926}\n",
            "6000 [334.93104785413715/s]: {'loss': 0.8958841562271118}\n",
            "7000 [339.6167321586609/s]: {'loss': 0.9093074202537537}\n",
            "8000 [353.65397828937813/s]: {'loss': 0.8922785520553589}\n",
            "8192 [344.2615974158996/s]: {'loss': 0.8747619986534119}\n",
            "9000 [354.602965462233/s]: {'loss': 0.9145602583885193}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.29845998, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.14399628287183305/s]: {'loss': 0.870607852935791}\n",
            "1 [41.96570147879855/s]: {'loss': 0.9010797739028931}\n",
            "2 [42.25402965828498/s]: {'loss': 0.8660361170768738}\n",
            "4 [75.6746263001687/s]: {'loss': 0.8843879699707031}\n",
            "8 [124.33830373817923/s]: {'loss': 0.9199796915054321}\n",
            "16 [183.15737991266374/s]: {'loss': 0.9027858376502991}\n",
            "32 [239.02658151653196/s]: {'loss': 0.8932203650474548}\n",
            "64 [241.72224703560158/s]: {'loss': 0.8894392848014832}\n",
            "128 [314.6072101636116/s]: {'loss': 0.8784835934638977}\n",
            "256 [327.30463049273936/s]: {'loss': 0.9045692086219788}\n",
            "512 [331.58232568595986/s]: {'loss': 0.874386191368103}\n",
            "1000 [337.66346267897364/s]: {'loss': 0.853265106678009}\n",
            "1024 [260.3560859410765/s]: {'loss': 0.8863006830215454}\n",
            "2000 [338.9893969980492/s]: {'loss': 0.9061757326126099}\n",
            "2048 [285.8055756667206/s]: {'loss': 0.8857024312019348}\n",
            "3000 [335.55469681751504/s]: {'loss': 0.8704907894134521}\n",
            "4000 [335.7088441903608/s]: {'loss': 0.8979400396347046}\n",
            "4096 [312.9316203380241/s]: {'loss': 0.8568699955940247}\n",
            "5000 [337.7877387616213/s]: {'loss': 0.9191133975982666}\n",
            "6000 [333.9701450419419/s]: {'loss': 0.8722658157348633}\n",
            "7000 [330.57297842950913/s]: {'loss': 0.890842616558075}\n",
            "8000 [329.59137246704915/s]: {'loss': 0.9330282211303711}\n",
            "8192 [329.55385480429493/s]: {'loss': 0.8548075556755066}\n",
            "9000 [338.58677358649663/s]: {'loss': 0.918415904045105}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.29992998, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.14557683451088496/s]: {'loss': 0.8913317918777466}\n",
            "1 [41.45470359168989/s]: {'loss': 0.8648141622543335}\n",
            "2 [42.16991413806278/s]: {'loss': 0.8818987607955933}\n",
            "4 [75.21458992728348/s]: {'loss': 0.9024176001548767}\n",
            "8 [123.11294074481746/s]: {'loss': 0.8829069137573242}\n",
            "16 [180.19091807363492/s]: {'loss': 0.9002804756164551}\n",
            "32 [177.59963584974568/s]: {'loss': 0.8564379215240479}\n",
            "64 [270.71050710168254/s]: {'loss': 0.8741816878318787}\n",
            "128 [306.86754767021813/s]: {'loss': 0.8721433877944946}\n",
            "256 [320.1048622323769/s]: {'loss': 0.8910896182060242}\n",
            "512 [324.00625476394663/s]: {'loss': 0.8920099139213562}\n",
            "1000 [332.31481921347637/s]: {'loss': 0.9006860256195068}\n",
            "1024 [258.304412534513/s]: {'loss': 0.8351009488105774}\n",
            "2000 [333.67625264492614/s]: {'loss': 0.8727045655250549}\n",
            "2048 [285.1110299178343/s]: {'loss': 0.8564087152481079}\n",
            "3000 [331.43296371390295/s]: {'loss': 0.9030932188034058}\n",
            "4000 [326.359594973057/s]: {'loss': 0.8755534291267395}\n",
            "4096 [292.72520833742266/s]: {'loss': 0.8985080122947693}\n",
            "5000 [318.15909352557105/s]: {'loss': 0.843655526638031}\n",
            "6000 [327.5449388916039/s]: {'loss': 0.851029634475708}\n",
            "7000 [345.4210974239252/s]: {'loss': 0.9004250764846802}\n",
            "8000 [345.88754752413513/s]: {'loss': 0.8806779980659485}\n",
            "8192 [334.4652514824049/s]: {'loss': 0.9020910859107971}\n",
            "9000 [345.1173982468146/s]: {'loss': 0.8435124158859253}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=6.4 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.29821995, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.14421099131303497/s]: {'loss': 0.9380311369895935}\n",
            "1 [41.40396043513455/s]: {'loss': 0.9033886194229126}\n",
            "2 [42.307305903831995/s]: {'loss': 0.9218510389328003}\n",
            "4 [74.33150796604463/s]: {'loss': 0.9251207709312439}\n",
            "8 [120.1892399168995/s]: {'loss': 0.8684166669845581}\n",
            "16 [175.22445611872956/s]: {'loss': 0.8631450533866882}\n",
            "32 [228.05510660422883/s]: {'loss': 0.8691583275794983}\n",
            "64 [263.6212055443491/s]: {'loss': 0.8569439649581909}\n",
            "128 [273.3413872177848/s]: {'loss': 0.8667312264442444}\n",
            "256 [314.69406785075574/s]: {'loss': 0.9171435236930847}\n",
            "512 [328.0750757595664/s]: {'loss': 0.8625178933143616}\n",
            "1000 [323.69061064603846/s]: {'loss': 0.9309162497520447}\n",
            "1024 [257.70001689612974/s]: {'loss': 0.8858088254928589}\n",
            "2000 [335.2359304223664/s]: {'loss': 0.9043047428131104}\n",
            "2048 [291.04331245364955/s]: {'loss': 0.9035284519195557}\n",
            "3000 [332.94347191547973/s]: {'loss': 0.8541622757911682}\n",
            "4000 [331.09422816075175/s]: {'loss': 0.8646494746208191}\n",
            "4096 [307.26915618978575/s]: {'loss': 0.8719902038574219}\n",
            "5000 [328.6036582189896/s]: {'loss': 0.9448549747467041}\n",
            "6000 [325.43505744513357/s]: {'loss': 0.9514719247817993}\n",
            "7000 [321.7343245468796/s]: {'loss': 0.9273402690887451}\n",
            "8000 [320.02082655067807/s]: {'loss': 0.928535521030426}\n",
            "8192 [315.11612913828765/s]: {'loss': 0.8971415758132935}\n",
            "9000 [323.6023673692475/s]: {'loss': 0.8421236872673035}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.29580003, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.14319511795346468/s]: {'loss': 0.8868756890296936}\n",
            "1 [41.76428884374876/s]: {'loss': 0.9152642488479614}\n",
            "2 [42.35814986871339/s]: {'loss': 0.8254258036613464}\n",
            "4 [75.99891282683143/s]: {'loss': 0.9125010967254639}\n",
            "8 [124.58945492351107/s]: {'loss': 0.912794828414917}\n",
            "16 [178.75962004613572/s]: {'loss': 0.8309140205383301}\n",
            "32 [234.254860757196/s]: {'loss': 0.8653764128684998}\n",
            "64 [274.2837337714754/s]: {'loss': 0.9449520707130432}\n",
            "128 [297.29376142115115/s]: {'loss': 0.9288349747657776}\n",
            "256 [314.57679365070067/s]: {'loss': 0.8546858429908752}\n",
            "512 [321.8012929692288/s]: {'loss': 0.8905426263809204}\n",
            "1000 [323.2491414668397/s]: {'loss': 0.9322410225868225}\n",
            "1024 [256.0325562230712/s]: {'loss': 0.9300209283828735}\n",
            "2000 [327.64934057384005/s]: {'loss': 0.9095789790153503}\n",
            "2048 [282.6667864764686/s]: {'loss': 0.9395253658294678}\n",
            "3000 [322.8734368588029/s]: {'loss': 0.8825631141662598}\n",
            "4000 [325.40195749925385/s]: {'loss': 0.9264981746673584}\n",
            "4096 [303.6094165301258/s]: {'loss': 0.8600955605506897}\n",
            "5000 [334.7745754849337/s]: {'loss': 0.9423668384552002}\n",
            "6000 [348.4377140454167/s]: {'loss': 0.8983067274093628}\n",
            "7000 [345.7324182172117/s]: {'loss': 0.8760010004043579}\n",
            "8000 [344.34291507102853/s]: {'loss': 0.8935141563415527}\n",
            "8192 [337.8984869165549/s]: {'loss': 0.8951043486595154}\n",
            "9000 [337.68009645959756/s]: {'loss': 0.8701874613761902}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.29843, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.14668219925797615/s]: {'loss': 0.9592955708503723}\n",
            "1 [41.538044070314434/s]: {'loss': 0.9332398772239685}\n",
            "2 [42.13559969058598/s]: {'loss': 0.8888242244720459}\n",
            "4 [74.81078381535882/s]: {'loss': 0.9303674697875977}\n",
            "8 [121.05210144666114/s]: {'loss': 0.862817645072937}\n",
            "16 [178.3586368927704/s]: {'loss': 0.9109848737716675}\n",
            "32 [231.72230144781412/s]: {'loss': 0.9064579010009766}\n",
            "64 [272.40991668442575/s]: {'loss': 0.8286370038986206}\n",
            "128 [302.4699834812807/s]: {'loss': 0.8759597539901733}\n",
            "256 [314.4410050006384/s]: {'loss': 0.8847941160202026}\n",
            "512 [327.2441804189001/s]: {'loss': 0.8581613302230835}\n",
            "1000 [337.51669007394526/s]: {'loss': 0.9631321430206299}\n",
            "1024 [265.3999878720448/s]: {'loss': 0.951867401599884}\n",
            "2000 [335.99088493436153/s]: {'loss': 0.9160938262939453}\n",
            "2048 [297.87283856181784/s]: {'loss': 0.933454692363739}\n",
            "3000 [338.3388281293426/s]: {'loss': 0.9050458073616028}\n",
            "4000 [337.06253053252584/s]: {'loss': 0.8544762134552002}\n",
            "4096 [318.2523440939424/s]: {'loss': 0.8986444473266602}\n",
            "5000 [336.2578412848077/s]: {'loss': 0.9219918847084045}\n",
            "6000 [315.705488150386/s]: {'loss': 0.9000256657600403}\n",
            "7000 [319.10398079611053/s]: {'loss': 0.9344915151596069}\n",
            "8000 [327.7428856661872/s]: {'loss': 0.9303564429283142}\n",
            "8192 [312.5625102611524/s]: {'loss': 0.8642980456352234}\n",
            "9000 [329.70174394735665/s]: {'loss': 0.943231463432312}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.29792, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.14636049739421125/s]: {'loss': 0.9008582830429077}\n",
            "1 [41.56562413287351/s]: {'loss': 0.9017525315284729}\n",
            "2 [41.99133002953396/s]: {'loss': 0.8806086778640747}\n",
            "4 [74.68290554917515/s]: {'loss': 0.8942472338676453}\n",
            "8 [119.9915319696753/s]: {'loss': 0.9570620059967041}\n",
            "16 [171.29483835068177/s]: {'loss': 0.9139726758003235}\n",
            "32 [221.93846072439612/s]: {'loss': 0.9278396964073181}\n",
            "64 [260.03829924091247/s]: {'loss': 0.9207488894462585}\n",
            "128 [293.3057286493657/s]: {'loss': 0.9065597653388977}\n",
            "256 [307.5834467712587/s]: {'loss': 0.9147289991378784}\n",
            "512 [328.9684463624927/s]: {'loss': 0.8900903463363647}\n",
            "1000 [336.25823481953245/s]: {'loss': 0.8638846278190613}\n",
            "1024 [254.7219077454079/s]: {'loss': 0.9012441039085388}\n",
            "2000 [329.79685292693813/s]: {'loss': 0.9335888028144836}\n",
            "2048 [291.21970948414776/s]: {'loss': 0.8955587148666382}\n",
            "3000 [329.484436702612/s]: {'loss': 0.8722547292709351}\n",
            "4000 [334.38925924514507/s]: {'loss': 0.9051308035850525}\n",
            "4096 [322.7654960681678/s]: {'loss': 0.8510146141052246}\n",
            "5000 [345.40813711488045/s]: {'loss': 0.937805712223053}\n",
            "6000 [345.30046701919775/s]: {'loss': 0.8715598583221436}\n",
            "7000 [345.71902449349733/s]: {'loss': 0.9067734479904175}\n",
            "8000 [326.11066883840317/s]: {'loss': 0.9363505244255066}\n",
            "8192 [302.0759418839442/s]: {'loss': 0.8645340204238892}\n",
            "9000 [318.64092377161677/s]: {'loss': 0.952835202217102}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.29704997, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.1450173586404512/s]: {'loss': 0.894149661064148}\n",
            "1 [41.093634573368476/s]: {'loss': 0.8832644820213318}\n",
            "2 [41.30569315462415/s]: {'loss': 0.8923724293708801}\n",
            "4 [74.89093035505441/s]: {'loss': 0.9195711016654968}\n",
            "8 [119.18853099558119/s]: {'loss': 0.8804875016212463}\n",
            "16 [172.4941884076597/s]: {'loss': 0.9046265482902527}\n",
            "32 [216.77950202214672/s]: {'loss': 0.8615849018096924}\n",
            "64 [261.2759718201833/s]: {'loss': 0.8717095851898193}\n",
            "128 [286.9469795443662/s]: {'loss': 0.8910157084465027}\n",
            "256 [281.2485787507255/s]: {'loss': 0.9087417721748352}\n",
            "512 [321.7615629025796/s]: {'loss': 0.9171200394630432}\n",
            "1000 [324.86520196263103/s]: {'loss': 0.9072990417480469}\n",
            "1024 [252.72727637908352/s]: {'loss': 0.8434261083602905}\n",
            "2000 [332.5795640111803/s]: {'loss': 0.863909125328064}\n",
            "2048 [288.62206828529816/s]: {'loss': 0.832122266292572}\n",
            "3000 [326.7795969220838/s]: {'loss': 0.9192336201667786}\n",
            "4000 [332.862777464744/s]: {'loss': 0.8599843978881836}\n",
            "4096 [308.54484611959936/s]: {'loss': 0.9249207973480225}\n",
            "5000 [333.0378125832781/s]: {'loss': 0.8567963242530823}\n",
            "6000 [333.18602928472274/s]: {'loss': 0.8293473720550537}\n",
            "7000 [324.9442486751192/s]: {'loss': 0.8987992405891418}\n",
            "8000 [333.64069962422406/s]: {'loss': 0.8740062713623047}\n",
            "8192 [319.17831871682847/s]: {'loss': 0.9225595593452454}\n",
            "9000 [335.56910559928485/s]: {'loss': 0.8546505570411682}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=25.6 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.29670995, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=1\n",
            "0 [0.0864419043275773/s]: {'loss': 0.9408857226371765}\n",
            "1 [41.35252592972355/s]: {'loss': 0.8920300006866455}\n",
            "2 [41.45921100754199/s]: {'loss': 0.9306668043136597}\n",
            "4 [73.55137613874494/s]: {'loss': 0.9327265620231628}\n",
            "8 [119.35047769454582/s]: {'loss': 0.8651814460754395}\n",
            "16 [173.88148601099635/s]: {'loss': 0.85066157579422}\n",
            "32 [226.89620616088908/s]: {'loss': 0.8731330633163452}\n",
            "64 [266.88538567997074/s]: {'loss': 0.859228789806366}\n",
            "128 [295.663719231464/s]: {'loss': 0.8710264563560486}\n",
            "256 [308.2595009244267/s]: {'loss': 0.9218490123748779}\n",
            "512 [319.37486938620964/s]: {'loss': 0.8685351014137268}\n",
            "1000 [324.66176411339893/s]: {'loss': 0.9229275584220886}\n",
            "1024 [262.92249708120136/s]: {'loss': 0.8808296918869019}\n",
            "2000 [348.79658909365423/s]: {'loss': 0.9073491096496582}\n",
            "2048 [306.8170404981575/s]: {'loss': 0.8956442475318909}\n",
            "3000 [355.3253730982021/s]: {'loss': 0.8556151390075684}\n",
            "4000 [359.5081558036902/s]: {'loss': 0.8637657761573792}\n",
            "4096 [335.7424080207322/s]: {'loss': 0.8817532658576965}\n",
            "5000 [349.51834167771534/s]: {'loss': 0.9474866986274719}\n",
            "6000 [305.38572102684583/s]: {'loss': 0.9531248807907104}\n",
            "7000 [326.95862199657773/s]: {'loss': 0.9240201711654663}\n",
            "8000 [338.59544417894983/s]: {'loss': 0.9406591653823853}\n",
            "8192 [326.5426282155253/s]: {'loss': 0.8805559873580933}\n",
            "9000 [333.9510428808614/s]: {'loss': 0.8431307673454285}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29564002, dtype=float32), 'noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=1': DeviceArray(0.30053002, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=2\n",
            "0 [0.1466989959331928/s]: {'loss': 0.8782591223716736}\n",
            "1 [41.57056771328893/s]: {'loss': 0.9162488579750061}\n",
            "2 [42.13094401028587/s]: {'loss': 0.8176652789115906}\n",
            "4 [74.66495772140632/s]: {'loss': 0.9320452809333801}\n",
            "8 [121.50183224460828/s]: {'loss': 0.9084396362304688}\n",
            "16 [178.20612884380478/s]: {'loss': 0.8222947120666504}\n",
            "32 [233.21528383520703/s]: {'loss': 0.8594071269035339}\n",
            "64 [272.8695867852605/s]: {'loss': 0.9494686126708984}\n",
            "128 [284.00729180222413/s]: {'loss': 0.9222713708877563}\n",
            "256 [316.7787432247923/s]: {'loss': 0.8360345363616943}\n",
            "512 [334.1413440317467/s]: {'loss': 0.8875715732574463}\n",
            "1000 [337.3187826914403/s]: {'loss': 0.9374350905418396}\n",
            "1024 [259.99497900168916/s]: {'loss': 0.9272294044494629}\n",
            "2000 [343.09787277411016/s]: {'loss': 0.9055531024932861}\n",
            "2048 [299.94128899615623/s]: {'loss': 0.9446953535079956}\n",
            "3000 [342.9901755478833/s]: {'loss': 0.8877261281013489}\n",
            "4000 [346.04033230994554/s]: {'loss': 0.9361655116081238}\n",
            "4096 [317.22534914996254/s]: {'loss': 0.8599602580070496}\n",
            "5000 [340.1806816459837/s]: {'loss': 0.949251115322113}\n",
            "6000 [336.6773875471467/s]: {'loss': 0.8925871253013611}\n",
            "7000 [337.63998385177115/s]: {'loss': 0.8808450102806091}\n",
            "8000 [345.480960469596/s]: {'loss': 0.9045158624649048}\n",
            "8192 [328.83176751904455/s]: {'loss': 0.9021168351173401}\n",
            "9000 [346.7153867771928/s]: {'loss': 0.8705214262008667}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29518, dtype=float32), 'noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=2': DeviceArray(0.30117998, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=3\n",
            "0 [0.14631779274711246/s]: {'loss': 0.95809006690979}\n",
            "1 [40.806576835141314/s]: {'loss': 0.9374454617500305}\n",
            "2 [41.55903452102572/s]: {'loss': 0.8768150806427002}\n",
            "4 [73.50368455640745/s]: {'loss': 0.9343068599700928}\n",
            "8 [116.81101742708543/s]: {'loss': 0.8625495433807373}\n",
            "16 [168.86641436508575/s]: {'loss': 0.9034021496772766}\n",
            "32 [220.00886475995645/s]: {'loss': 0.8937942385673523}\n",
            "64 [251.40714711182207/s]: {'loss': 0.8343756794929504}\n",
            "128 [276.2406351460517/s]: {'loss': 0.8773903846740723}\n",
            "256 [286.15000103934204/s]: {'loss': 0.8878249526023865}\n",
            "512 [294.1415122508989/s]: {'loss': 0.8703710436820984}\n",
            "1000 [323.5333818702345/s]: {'loss': 0.9658463597297668}\n",
            "1024 [254.48235796754483/s]: {'loss': 0.9565521478652954}\n",
            "2000 [322.2676585152454/s]: {'loss': 0.9070441126823425}\n",
            "2048 [283.7632095257425/s]: {'loss': 0.9372952580451965}\n",
            "3000 [323.2839788524285/s]: {'loss': 0.8919960856437683}\n",
            "4000 [323.944389715318/s]: {'loss': 0.8559837341308594}\n",
            "4096 [308.50513072959563/s]: {'loss': 0.8951519727706909}\n",
            "5000 [330.18293801925114/s]: {'loss': 0.9204199314117432}\n",
            "6000 [320.4036579592805/s]: {'loss': 0.8960279822349548}\n",
            "7000 [328.01767882452117/s]: {'loss': 0.9375016689300537}\n",
            "8000 [329.3687352623278/s]: {'loss': 0.9354689121246338}\n",
            "8192 [319.51149922830626/s]: {'loss': 0.8677443265914917}\n",
            "9000 [322.3940272302804/s]: {'loss': 0.9566789269447327}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29882997, dtype=float32), 'noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=3': DeviceArray(0.29802996, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=4\n",
            "0 [0.14550386445378985/s]: {'loss': 0.9010486602783203}\n",
            "1 [41.942620573794265/s]: {'loss': 0.9038094282150269}\n",
            "2 [42.3889719852852/s]: {'loss': 0.8967817425727844}\n",
            "4 [74.81945807096095/s]: {'loss': 0.8891530632972717}\n",
            "8 [123.78603154927914/s]: {'loss': 0.953129768371582}\n",
            "16 [181.90134713902367/s]: {'loss': 0.9205793142318726}\n",
            "32 [234.2491369530691/s]: {'loss': 0.9259788990020752}\n",
            "64 [278.28854004897397/s]: {'loss': 0.9218904972076416}\n",
            "128 [291.4045450499252/s]: {'loss': 0.9122424125671387}\n",
            "256 [316.46485187121675/s]: {'loss': 0.9099855422973633}\n",
            "512 [327.2830813704327/s]: {'loss': 0.8987176418304443}\n",
            "1000 [331.30513501666866/s]: {'loss': 0.8739807605743408}\n",
            "1024 [263.8279644292083/s]: {'loss': 0.9060972332954407}\n",
            "2000 [333.29496147964034/s]: {'loss': 0.9370638132095337}\n",
            "2048 [288.4029372244203/s]: {'loss': 0.8949137330055237}\n",
            "3000 [324.8385688799148/s]: {'loss': 0.8601408004760742}\n",
            "4000 [332.7240445268958/s]: {'loss': 0.9065820574760437}\n",
            "4096 [324.46335563287784/s]: {'loss': 0.8457385897636414}\n",
            "5000 [344.5260845347879/s]: {'loss': 0.9422519207000732}\n",
            "6000 [330.85102615150726/s]: {'loss': 0.871913731098175}\n",
            "7000 [311.69765408408034/s]: {'loss': 0.9134547114372253}\n",
            "8000 [302.7688856992422/s]: {'loss': 0.9306948781013489}\n",
            "8192 [320.9559365617852/s]: {'loss': 0.8654126524925232}\n",
            "9000 [325.8750271763039/s]: {'loss': 0.9531352519989014}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29869998, dtype=float32), 'noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=4': DeviceArray(0.29352, dtype=float32)}\n",
            "====================\n",
            "Training: noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=5\n",
            "0 [0.14232912156991828/s]: {'loss': 0.8906612396240234}\n",
            "1 [42.305172274671186/s]: {'loss': 0.8898573517799377}\n",
            "2 [42.86813433903641/s]: {'loss': 0.8962312340736389}\n",
            "4 [76.24205187864686/s]: {'loss': 0.9138656258583069}\n",
            "8 [124.79612011574194/s]: {'loss': 0.875162661075592}\n",
            "16 [184.97175901170323/s]: {'loss': 0.9059797525405884}\n",
            "32 [241.85727620345043/s]: {'loss': 0.8660648465156555}\n",
            "64 [286.08763527152354/s]: {'loss': 0.86455899477005}\n",
            "128 [315.0551050612246/s]: {'loss': 0.8891971111297607}\n",
            "256 [323.7981378035056/s]: {'loss': 0.9101967215538025}\n",
            "512 [341.5823212504792/s]: {'loss': 0.9215639233589172}\n",
            "1000 [343.977636634296/s]: {'loss': 0.8924638032913208}\n",
            "1024 [266.1409660183009/s]: {'loss': 0.8440784811973572}\n",
            "2000 [340.21273589370736/s]: {'loss': 0.859407901763916}\n",
            "2048 [300.66156520492467/s]: {'loss': 0.8179879188537598}\n",
            "3000 [332.69832348425183/s]: {'loss': 0.9172017574310303}\n",
            "4000 [325.09065294925915/s]: {'loss': 0.8468167781829834}\n",
            "4096 [303.3488910318226/s]: {'loss': 0.936766505241394}\n",
            "5000 [319.40850879182966/s]: {'loss': 0.859512209892273}\n",
            "6000 [323.373847736497/s]: {'loss': 0.8136422038078308}\n",
            "7000 [326.41796105666145/s]: {'loss': 0.8919143676757812}\n",
            "8000 [327.921483429907/s]: {'loss': 0.8777255415916443}\n",
            "8192 [320.18237011008097/s]: {'loss': 0.9272708296775818}\n",
            "9000 [325.72183931377884/s]: {'loss': 0.8573142290115356}\n",
            "{'Independent': DeviceArray(0.9078016, dtype=float32), 'ICDF': DeviceArray(0.8775598, dtype=float32), 'ICDF (permuted)': DeviceArray(0.49747536, dtype=float32), 'Gumbel-max': DeviceArray(0.29973, dtype=float32), 'noise_scale=102.4 Z_dim=100 lr=1e-05 train_seed=5': DeviceArray(0.29751, dtype=float32)}\n"
          ]
        }
      ],
      "source": [
        "results = []\n",
        "test_results = []\n",
        "for ex in experiments:\n",
        "  print(\"=\" * 20)\n",
        "  print(f\"Training: {ex.name}\")\n",
        "  res = ex.train(jax.random.PRNGKey(ex.metadata[\"train_seed\"]))\n",
        "  results.append(res)\n",
        "  time.sleep(0.5)\n",
        "  (logits_1, logits_2), couplings = experiment_util.get_coupling_estimates(\n",
        "      [ex], [res], 1000 + ex.metadata[\"train_seed\"],\n",
        "      num_joint_samples=100_000,\n",
        "      logit_kwargs={\"noise_scale\":0.0})\n",
        "  test_loss = experiment_util.compute_coupling_losses([ex], logits_1, logits_2, couplings)\n",
        "  print(test_loss)\n",
        "  test_results.append((test_loss, logits_1, logits_2, couplings))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 101
        },
        "executionInfo": {
          "elapsed": 80,
          "status": "ok",
          "timestamp": 1633386301791,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "RK_uwWEn4oOV",
        "outputId": "164ec7ea-3ca4-4633-a1fd-413aaea7fd17"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">defaultdict(&lt;function &lt;lambda&gt; at 0x7f4cca15f560&gt;, {&#x27;100&#x27;: defaultdict(&lt;class &#x27;list&#x27;&gt;, {0.0: [0.2481900006532669, 0.24666999280452728, 0.24633999168872833, 0.2475000023841858, 0.24786999821662903], 0.1: [0.26311996579170227, 0.2629200220108032, 0.26527997851371765, 0.2658500075340271, 0.2668899893760681], 0.4: [0.2709300220012665, 0.2709999680519104, 0.2707799971103668, 0.2703399956226349, 0.2741200029850006], 1.6: [0.2830600142478943, 0.2836900055408478, 0....</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;100&#x27;: <details ><summary><span class=\"when_closed\">defaultdict(&lt;class &#x27;list&#x27;&gt;, {0.0: [0.2481900006532669, 0.24666999280452728, 0.24633999168872833, 0.2475000023841858, 0.24786999821662903], 0.1: [0.26311996579170227, 0.2629200220108032, 0.26527997851371765, 0.2658500075340271, 0.2668899893760681], 0.4: [0.2709300220012665, 0.2709999680519104, 0.2707799971103668, 0.2703399956226349, 0.2741200029850006], 1.6: [0.2830600142478943, 0.2836900055408478, 0.2833099961280823, 0.28325000405311584, 0.2790599763393402], 6.4: [0.2981500327587...</span><span class=\"when_open\">{</span></summary><ul><li>0.0: <details ><summary><span class=\"when_closed\">[0.2481900006532669, 0.24666999280452728, 0.24633999168872833, 0.2475000023841858, 0.24786999821662903]</span><span class=\"when_open\">[</span></summary><ul><li>0.2481900006532669,</li><li>0.24666999280452728,</li><li>0.24633999168872833,</li><li>0.2475000023841858,</li><li>0.24786999821662903,</li></ul>]</details></li><li>0.1: <details ><summary><span class=\"when_closed\">[0.26311996579170227, 0.2629200220108032, 0.26527997851371765, 0.2658500075340271, 0.2668899893760681]</span><span class=\"when_open\">[</span></summary><ul><li>0.26311996579170227,</li><li>0.2629200220108032,</li><li>0.26527997851371765,</li><li>0.2658500075340271,</li><li>0.2668899893760681,</li></ul>]</details></li><li>0.4: <details ><summary><span class=\"when_closed\">[0.2709300220012665, 0.2709999680519104, 0.2707799971103668, 0.2703399956226349, 0.2741200029850006]</span><span class=\"when_open\">[</span></summary><ul><li>0.2709300220012665,</li><li>0.2709999680519104,</li><li>0.2707799971103668,</li><li>0.2703399956226349,</li><li>0.2741200029850006,</li></ul>]</details></li><li>1.6: <details ><summary><span class=\"when_closed\">[0.2830600142478943, 0.2836900055408478, 0.2833099961280823, 0.28325000405311584, 0.2790599763393402]</span><span class=\"when_open\">[</span></summary><ul><li>0.2830600142478943,</li><li>0.2836900055408478,</li><li>0.2833099961280823,</li><li>0.28325000405311584,</li><li>0.2790599763393402,</li></ul>]</details></li><li>6.4: <details ><summary><span class=\"when_closed\">[0.29815003275871277, 0.29875001311302185, 0.2984599769115448, 0.29992997646331787, 0.2982199490070343]</span><span class=\"when_open\">[</span></summary><ul><li>0.29815003275871277,</li><li>0.29875001311302185,</li><li>0.2984599769115448,</li><li>0.29992997646331787,</li><li>0.2982199490070343,</li></ul>]</details></li><li>25.6: <details ><summary><span class=\"when_closed\">[0.29580003023147583, 0.2984299957752228, 0.29791998863220215, 0.29704996943473816, 0.29670995473861694]</span><span class=\"when_open\">[</span></summary><ul><li>0.29580003023147583,</li><li>0.2984299957752228,</li><li>0.29791998863220215,</li><li>0.29704996943473816,</li><li>0.29670995473861694,</li></ul>]</details></li><li>102.4: <details ><summary><span class=\"when_closed\">[0.30053001642227173, 0.301179975271225, 0.29802995920181274, 0.2935200035572052, 0.2975099980831146]</span><span class=\"when_open\">[</span></summary><ul><li>0.30053001642227173,</li><li>0.301179975271225,</li><li>0.29802995920181274,</li><li>0.2935200035572052,</li><li>0.2975099980831146,</li></ul>]</details></li></ul>}</details></li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'100': {0.0:\n",
              "           [0.2481900006532669,\n",
              "            0.24666999280452728,\n",
              "            0.24633999168872833,\n",
              "            0.2475000023841858,\n",
              "            0.24786999821662903],\n",
              "         0.1:\n",
              "           [0.26311996579170227,\n",
              "            0.2629200220108032,\n",
              "            0.26527997851371765,\n",
              "            0.2658500075340271,\n",
              "            0.2668899893760681],\n",
              "         0.4:\n",
              "           [0.2709300220012665,\n",
              "            0.2709999680519104,\n",
              "            0.2707799971103668,\n",
              "            0.2703399956226349,\n",
              "            0.2741200029850006],\n",
              "         1.6:\n",
              "           [0.2830600142478943,\n",
              "            0.2836900055408478,\n",
              "            0.2833099961280823,\n",
              "            0.28325000405311584,\n",
              "            0.2790599763393402],\n",
              "         6.4:\n",
              "           [0.29815003275871277,\n",
              "            0.29875001311302185,\n",
              "            0.2984599769115448,\n",
              "            0.29992997646331787,\n",
              "            0.2982199490070343],\n",
              "         25.6:\n",
              "           [0.29580003023147583,\n",
              "            0.2984299957752228,\n",
              "            0.29791998863220215,\n",
              "            0.29704996943473816,\n",
              "            0.29670995473861694],\n",
              "         102.4:\n",
              "           [0.30053001642227173,\n",
              "            0.301179975271225,\n",
              "            0.29802995920181274,\n",
              "            0.2935200035572052,\n",
              "            0.2975099980831146]}}"
            ]
          },
          "execution_count": 147,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "import collections\n",
        "import re\n",
        "\n",
        "table = collections.defaultdict(lambda: collections.defaultdict(list))\n",
        "for task_results in test_results:\n",
        "  for name, loss in task_results[0].items():\n",
        "    if name.startswith('noise_scale'):# and \"lr=1e-05\" in name:\n",
        "      m = re.search('noise_scale=(\\S+) Z_dim=(\\S+)', name)\n",
        "      if m is not None:\n",
        "        noise_scale, Z_dim = m.groups()\n",
        "        table[Z_dim][float(noise_scale)].append(float(loss))\n",
        "table"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 118
        },
        "executionInfo": {
          "elapsed": 102,
          "status": "ok",
          "timestamp": 1633386304427,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "pGZ8_dJZ5LkO",
        "outputId": "e1752a93-d980-4ea5-a3be-8af7b3bcdb7f"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">((0.0, 0.1, 0.4, 1.6, 6.4, 25.6, 102.4), ([0.2481900006532669, 0.24666999280452728, 0.24633999168872833, 0.2475000023841858, 0.24786999821662903], [0.26311996579170227, 0.2629200220108032, 0.26527997851371765, 0.2658500075340271, 0.2668899893760681], [0.2709300220012665, 0.2709999680519104, 0.2707799971103668, 0.2703399956226349, 0.2741200029850006], [0.2830600142478943, 0.2836900055408478, 0.2833099961280823, 0.28325000405311584, 0.2790599763393402], [0.29815003275871277, 0.29875001311302185, 0...</span><span class=\"when_open\">(</span></summary><ul><li><details ><summary><span class=\"when_closed\">(0.0, 0.1, 0.4, 1.6, 6.4, 25.6, 102.4)</span><span class=\"when_open\">(</span></summary><ul><li>0.0,</li><li>0.1,</li><li>0.4,</li><li>1.6,</li><li>6.4,</li><li>25.6,</li><li>102.4,</li></ul>)</details>,</li><li><details ><summary><span class=\"when_closed\">([0.2481900006532669, 0.24666999280452728, 0.24633999168872833, 0.2475000023841858, 0.24786999821662903], [0.26311996579170227, 0.2629200220108032, 0.26527997851371765, 0.2658500075340271, 0.2668899893760681], [0.2709300220012665, 0.2709999680519104, 0.2707799971103668, 0.2703399956226349, 0.2741200029850006], [0.2830600142478943, 0.2836900055408478, 0.2833099961280823, 0.28325000405311584, 0.2790599763393402], [0.29815003275871277, 0.29875001311302185, 0.2984599769115448, 0.29992997646331787, 0...</span><span class=\"when_open\">(</span></summary><ul><li><details ><summary><span class=\"when_closed\">[0.2481900006532669, 0.24666999280452728, 0.24633999168872833, 0.2475000023841858, 0.24786999821662903]</span><span class=\"when_open\">[</span></summary><ul><li>0.2481900006532669,</li><li>0.24666999280452728,</li><li>0.24633999168872833,</li><li>0.2475000023841858,</li><li>0.24786999821662903,</li></ul>]</details>,</li><li><details ><summary><span class=\"when_closed\">[0.26311996579170227, 0.2629200220108032, 0.26527997851371765, 0.2658500075340271, 0.2668899893760681]</span><span class=\"when_open\">[</span></summary><ul><li>0.26311996579170227,</li><li>0.2629200220108032,</li><li>0.26527997851371765,</li><li>0.2658500075340271,</li><li>0.2668899893760681,</li></ul>]</details>,</li><li><details ><summary><span class=\"when_closed\">[0.2709300220012665, 0.2709999680519104, 0.2707799971103668, 0.2703399956226349, 0.2741200029850006]</span><span class=\"when_open\">[</span></summary><ul><li>0.2709300220012665,</li><li>0.2709999680519104,</li><li>0.2707799971103668,</li><li>0.2703399956226349,</li><li>0.2741200029850006,</li></ul>]</details>,</li><li><details ><summary><span class=\"when_closed\">[0.2830600142478943, 0.2836900055408478, 0.2833099961280823, 0.28325000405311584, 0.2790599763393402]</span><span class=\"when_open\">[</span></summary><ul><li>0.2830600142478943,</li><li>0.2836900055408478,</li><li>0.2833099961280823,</li><li>0.28325000405311584,</li><li>0.2790599763393402,</li></ul>]</details>,</li><li><details ><summary><span class=\"when_closed\">[0.29815003275871277, 0.29875001311302185, 0.2984599769115448, 0.29992997646331787, 0.2982199490070343]</span><span class=\"when_open\">[</span></summary><ul><li>0.29815003275871277,</li><li>0.29875001311302185,</li><li>0.2984599769115448,</li><li>0.29992997646331787,</li><li>0.2982199490070343,</li></ul>]</details>,</li><li><details ><summary><span class=\"when_closed\">[0.29580003023147583, 0.2984299957752228, 0.29791998863220215, 0.29704996943473816, 0.29670995473861694]</span><span class=\"when_open\">[</span></summary><ul><li>0.29580003023147583,</li><li>0.2984299957752228,</li><li>0.29791998863220215,</li><li>0.29704996943473816,</li><li>0.29670995473861694,</li></ul>]</details>,</li><li><details ><summary><span class=\"when_closed\">[0.30053001642227173, 0.301179975271225, 0.29802995920181274, 0.2935200035572052, 0.2975099980831146]</span><span class=\"when_open\">[</span></summary><ul><li>0.30053001642227173,</li><li>0.301179975271225,</li><li>0.29802995920181274,</li><li>0.2935200035572052,</li><li>0.2975099980831146,</li></ul>]</details>,</li></ul>)</details>,</li></ul>)</details></pre>"
            ],
            "text/plain": [
              "((0.0, 0.1, 0.4, 1.6, 6.4, 25.6, 102.4),\n",
              " ([0.2481900006532669,\n",
              "   0.24666999280452728,\n",
              "   0.24633999168872833,\n",
              "   0.2475000023841858,\n",
              "   0.24786999821662903],\n",
              "  [0.26311996579170227,\n",
              "   0.2629200220108032,\n",
              "   0.26527997851371765,\n",
              "   0.2658500075340271,\n",
              "   0.2668899893760681],\n",
              "  [0.2709300220012665,\n",
              "   0.2709999680519104,\n",
              "   0.2707799971103668,\n",
              "   0.2703399956226349,\n",
              "   0.2741200029850006],\n",
              "  [0.2830600142478943,\n",
              "   0.2836900055408478,\n",
              "   0.2833099961280823,\n",
              "   0.28325000405311584,\n",
              "   0.2790599763393402],\n",
              "  [0.29815003275871277,\n",
              "   0.29875001311302185,\n",
              "   0.2984599769115448,\n",
              "   0.29992997646331787,\n",
              "   0.2982199490070343],\n",
              "  [0.29580003023147583,\n",
              "   0.2984299957752228,\n",
              "   0.29791998863220215,\n",
              "   0.29704996943473816,\n",
              "   0.29670995473861694],\n",
              "  [0.30053001642227173,\n",
              "   0.301179975271225,\n",
              "   0.29802995920181274,\n",
              "   0.2935200035572052,\n",
              "   0.2975099980831146]))"
            ]
          },
          "execution_count": 148,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "noise_scales, losses = zip(*table['100'].items())\n",
        "noise_scales, losses"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "gIDAK0-q5Vws"
      },
      "outputs": [],
      "source": [
        "losses = np.array(list(losses))\n",
        "loss_avgs = np.mean(losses, axis=-1)\n",
        "loss_stds = np.std(losses, axis=-1)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 98
        },
        "executionInfo": {
          "elapsed": 2435,
          "status": "ok",
          "timestamp": 1633390838709,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "YVg58WBMqxx2",
        "outputId": "db2c8ecb-3466-4efd-d09d-0d2b86630264"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">(DeviceArray(0.29661, dtype=float32), DeviceArray(0.24342999, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>DeviceArray(0.29661, dtype=float32),</li><li>DeviceArray(0.24342999, dtype=float32),</li></ul>)</details></pre>"
            ],
            "text/plain": [
              "(DeviceArray(0.29661, dtype=float32), DeviceArray(0.24342999, dtype=float32))"
            ]
          },
          "execution_count": 154,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "_, logits_1, logits_2, _ = test_results[0]\n",
        "score_matrix = maximal_coupling_loss_matrix_fn(logits_1, logits_2)\n",
        "\n",
        "gumbel_max_coupling = coupling_util.joint_from_samples(\n",
        "    coupling_util.gumbel_max_sampler,\n",
        "    logits_1=logits_1,\n",
        "    logits_2=logits_2,\n",
        "    rng=jax.random.PRNGKey(0),\n",
        "    num_samples=100_000)\n",
        "gumbel_max_score = jnp.sum(score_matrix * gumbel_max_coupling)\n",
        "\n",
        "maximal_coupling = coupling_util.joint_from_samples(\n",
        "    coupling_util.maximal_coupling_sampler,\n",
        "    logits_1=logits_1,\n",
        "    logits_2=logits_2,\n",
        "    rng=jax.random.PRNGKey(0),\n",
        "    num_samples=100_000)\n",
        "maximal_score = jnp.sum(score_matrix * maximal_coupling)\n",
        "\n",
        "gumbel_max_score, maximal_score"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 284
        },
        "executionInfo": {
          "elapsed": 743,
          "status": "ok",
          "timestamp": 1633391302627,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "mLXqd5zf5lBX",
        "outputId": "b1947570-413b-40d1-e1a6-a6458d1c588a"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "Text(0, 0.5, 'Coupling loss (test)')"
            ]
          },
          "execution_count": 160,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 900x900 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "fig, ax = plt.subplots(figsize=(3, 3))\n",
        "ax.figure.set_dpi(300)\n",
        "\n",
        "plt.errorbar(noise_scales, loss_avgs, yerr=loss_stds, capsize=3, label=\"Ours\")\n",
        "ax.set_xscale('symlog', linthreshx=.01)\n",
        "\n",
        "plt.axhline(gumbel_max_score, c='r', ls='--', label=\"Gumbel-max\")\n",
        "plt.axhline(maximal_score, c='k', ls='-.', label=\"Optimal\")\n",
        "\n",
        "plt.legend(loc='upper left')\n",
        "plt.ylim([.24, .305])\n",
        "\n",
        "plt.xlabel('Noise scale during training')\n",
        "plt.ylabel('Coupling loss (test)')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 244
        },
        "executionInfo": {
          "elapsed": 665,
          "status": "ok",
          "timestamp": 1633392659147,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "C6MpeYlYxYI2",
        "outputId": "c5922718-8c22-48be-b18d-cef7a4b45ecb"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 2800x400 with 7 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "i = 0\n",
        "ex = experiments[i]\n",
        "experiment_util.visualize_coupling_experiments(*test_results[i])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "SDdXzvuOtXNV"
      },
      "source": [
        "## Section 7.2 part 1: Minimizing variance with random p and q"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "LbQZM_Hq5ySu"
      },
      "outputs": [],
      "source": [
        "def softmax_uniform_logits(rng, dim=10):\n",
        "  \"\"\"Sample logits in a way that is sparse.\"\"\"\n",
        "  return jax.nn.log_softmax(8 * jax.random.uniform(rng, shape=[dim]))\n",
        "\n",
        "def softmax_uniform_logit_pair_distribution_fn(key, dim, p_q_mode, fixed_p_q_seed=123456):\n",
        "  if p_q_mode == \"fixed\":\n",
        "    key = jax.random.PRNGKey(fixed_p_q_seed)\n",
        "    key_p, key_q = jax.random.split(key, 2)\n",
        "    p_logits = softmax_uniform_logits(key_p, dim)\n",
        "    q_logits = softmax_uniform_logits(key_q, dim)\n",
        "  elif p_q_mode == \"independent\":\n",
        "    key_p, key_q = jax.random.split(key, 2)\n",
        "    p_logits = softmax_uniform_logits(key_p, dim)\n",
        "    q_logits = softmax_uniform_logits(key_q, dim)\n",
        "  elif p_q_mode == \"reverse\":\n",
        "    key_p = key\n",
        "    p_logits = softmax_uniform_logits(key_p, dim)\n",
        "    q_logits = p_logits[::-1]\n",
        "  else:\n",
        "    raise NotImplementedError(p_q_mode)\n",
        "\n",
        "  return p_logits, q_logits\n",
        "\n",
        "def squared_loss_matrix_fn(logits1, logits2):\n",
        "  seq = jnp.arange(logits1.shape[0]).astype(jnp.float32)\n",
        "  return jnp.square(seq[None, :] - seq[:, None])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3P1Xa18eOGc7"
      },
      "source": [
        "### Phase 1: Tuning learning rate\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "yx6gRJ2SB-Zt"
      },
      "outputs": [],
      "source": [
        "S_dim = 10\n",
        "experiments = []\n",
        "for lr in [1e-5, 1e-4, 3e-4, 1e-3, 3e-3, 1e-2]:\n",
        "  for p_q_mode in [\"reverse\", \"independent\", \"fixed\"]:\n",
        "    for is_gadget_2 in [True, False]:\n",
        "      ex = experiment_util.CouplingExperimentConfig(\n",
        "        name=f\"G{2 if is_gadget_2 else 1} relaxed {p_q_mode} lr={lr}\",\n",
        "        model=(\n",
        "            gadget_2.GadgetTwoMLPPredictor(\n",
        "                S_dim=10, Z_dim=20, hidden_features=[1024, 1024],\n",
        "                relaxation_temperature=1.0, learn_prior=False)\n",
        "            if is_gadget_2 else\n",
        "            gadget_1.GadgetOneMLPPredictor(\n",
        "                S_dim=10, hidden_features=[1024, 1024],\n",
        "                relaxation_temperature=1.0)\n",
        "        ),\n",
        "        logit_pair_distribution_fn=functools.partial(\n",
        "            softmax_uniform_logit_pair_distribution_fn,\n",
        "            dim=S_dim,\n",
        "            p_q_mode=p_q_mode),\n",
        "        coupling_loss_matrix_fn=squared_loss_matrix_fn,\n",
        "        inner_num_samples=16,\n",
        "        batch_size=64,\n",
        "        use_transpose=(not is_gadget_2),\n",
        "        tx=optax.adam(lr),\n",
        "        num_steps=5_000,\n",
        "        print_every=2_500,\n",
        "        metadata=dict(lr=lr, p_q_mode=p_q_mode, is_gadget_2=is_gadget_2),\n",
        "      )\n",
        "      experiments.append(ex)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "executionInfo": {
          "elapsed": 409004,
          "status": "ok",
          "timestamp": 1633403931748,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "FH8wTvVsEiPW",
        "outputId": "bc5b5460-7f0c-4029-bead-a531ae2a7742"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "====================\n",
            "Training: G2 relaxed reverse lr=1e-05\n",
            "0 [0.1565066369825618/s]: {'loss': 16.857027053833008}\n",
            "1 [43.994042249680085/s]: {'loss': 18.300264358520508}\n",
            "2 [44.8162070328778/s]: {'loss': 19.191816329956055}\n",
            "4 [82.1993493513111/s]: {'loss': 17.70201873779297}\n",
            "8 [143.8585527726092/s]: {'loss': 16.645944595336914}\n",
            "16 [223.6619185058291/s]: {'loss': 15.625785827636719}\n",
            "32 [317.49925011946044/s]: {'loss': 17.1085262298584}\n",
            "64 [399.2032693463092/s]: {'loss': 18.833566665649414}\n",
            "128 [459.67730257806545/s]: {'loss': 17.97404670715332}\n",
            "256 [474.7053926059016/s]: {'loss': 16.608440399169922}\n",
            "512 [521.4910965796723/s]: {'loss': 13.66977310180664}\n",
            "1024 [532.6067293729577/s]: {'loss': 13.337252616882324}\n",
            "2048 [537.3472031271718/s]: {'loss': 17.35462760925293}\n",
            "2500 [528.2141091291661/s]: {'loss': 16.38849449157715}\n",
            "4096 [535.3209017331111/s]: {'loss': 11.6572847366333}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=1e-05\n",
            "0 [0.525463461763966/s]: {'loss': 18.823545455932617}\n",
            "1 [45.39781361619223/s]: {'loss': 20.674999237060547}\n",
            "2 [46.178026841647494/s]: {'loss': 20.463289260864258}\n",
            "4 [89.09076233564859/s]: {'loss': 19.28097152709961}\n",
            "8 [161.4715404900772/s]: {'loss': 18.654399871826172}\n",
            "16 [276.1136236463579/s]: {'loss': 17.45167350769043}\n",
            "32 [433.1448487743168/s]: {'loss': 18.445680618286133}\n",
            "64 [599.6038669787888/s]: {'loss': 20.7874698638916}\n",
            "128 [745.8591557122653/s]: {'loss': 19.211423873901367}\n",
            "256 [856.8000510692627/s]: {'loss': 18.418973922729492}\n",
            "512 [885.9511817585492/s]: {'loss': 16.944660186767578}\n",
            "1024 [936.679809216825/s]: {'loss': 18.80012321472168}\n",
            "2048 [958.237547000292/s]: {'loss': 20.273616790771484}\n",
            "2500 [916.8861921440379/s]: {'loss': 19.451061248779297}\n",
            "4096 [920.5625741997225/s]: {'loss': 16.093406677246094}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=1e-05\n",
            "0 [0.1650708027247381/s]: {'loss': 13.701184272766113}\n",
            "1 [43.688391229623456/s]: {'loss': 13.99173355102539}\n",
            "2 [44.6849058211881/s]: {'loss': 14.428696632385254}\n",
            "4 [81.99526909467676/s]: {'loss': 14.906758308410645}\n",
            "8 [140.26130720484224/s]: {'loss': 14.971267700195312}\n",
            "16 [221.0597078839705/s]: {'loss': 15.340763092041016}\n",
            "32 [316.9085147878977/s]: {'loss': 14.167449951171875}\n",
            "64 [402.2348597458643/s]: {'loss': 14.568334579467773}\n",
            "128 [458.62804949931746/s]: {'loss': 12.482991218566895}\n",
            "256 [496.70349385863955/s]: {'loss': 11.301263809204102}\n",
            "512 [508.42648393004947/s]: {'loss': 9.850837707519531}\n",
            "1024 [521.6101634480018/s]: {'loss': 10.71194076538086}\n",
            "2048 [518.9570341385706/s]: {'loss': 8.704815864562988}\n",
            "2500 [512.6275658412585/s]: {'loss': 9.765020370483398}\n",
            "4096 [515.9954981013541/s]: {'loss': 9.976655960083008}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=1e-05\n",
            "0 [0.4178389350641277/s]: {'loss': 15.140593528747559}\n",
            "1 [45.76536312849162/s]: {'loss': 16.241182327270508}\n",
            "2 [46.309057987015855/s]: {'loss': 16.05568504333496}\n",
            "4 [88.51076760749143/s]: {'loss': 16.2408390045166}\n",
            "8 [161.5508372572243/s]: {'loss': 17.35519027709961}\n",
            "16 [280.83252707520796/s]: {'loss': 17.241390228271484}\n",
            "32 [441.9825601306673/s]: {'loss': 15.804865837097168}\n",
            "64 [604.7968565532034/s]: {'loss': 16.404558181762695}\n",
            "128 [751.0343712316848/s]: {'loss': 14.99088191986084}\n",
            "256 [857.7171760420495/s]: {'loss': 14.3176908493042}\n",
            "512 [908.9446968016754/s]: {'loss': 14.645413398742676}\n",
            "1024 [938.6716647944086/s]: {'loss': 15.195834159851074}\n",
            "2048 [949.1453750412422/s]: {'loss': 14.083505630493164}\n",
            "2500 [951.1098597936965/s]: {'loss': 13.654770851135254}\n",
            "4096 [1001.2479024841731/s]: {'loss': 15.145313262939453}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=1e-05\n",
            "0 [0.1808655761214028/s]: {'loss': 9.42126750946045}\n",
            "1 [45.41206786414179/s]: {'loss': 9.332023620605469}\n",
            "2 [45.964975342465756/s]: {'loss': 9.73458194732666}\n",
            "4 [86.83859213250517/s]: {'loss': 9.405744552612305}\n",
            "8 [159.798228402705/s]: {'loss': 9.294401168823242}\n",
            "16 [266.851425935646/s]: {'loss': 9.224616050720215}\n",
            "32 [413.5833651748407/s]: {'loss': 9.153977394104004}\n",
            "64 [562.0884481372286/s]: {'loss': 8.46158504486084}\n",
            "128 [697.4704601553772/s]: {'loss': 6.10734748840332}\n",
            "256 [720.878840408462/s]: {'loss': 4.414257049560547}\n",
            "512 [840.3478217314232/s]: {'loss': 3.3798062801361084}\n",
            "1024 [871.7633981616308/s]: {'loss': 2.610147714614868}\n",
            "2048 [877.01345465275/s]: {'loss': 2.5527501106262207}\n",
            "2500 [852.2896415243544/s]: {'loss': 2.574214458465576}\n",
            "4096 [875.7878801516787/s]: {'loss': 2.596513509750366}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=1e-05\n",
            "0 [0.47718354238843885/s]: {'loss': 11.313092231750488}\n",
            "1 [46.07910001757778/s]: {'loss': 11.272830963134766}\n",
            "2 [46.868968599843555/s]: {'loss': 11.257989883422852}\n",
            "4 [89.8282165229962/s]: {'loss': 11.245877265930176}\n",
            "8 [166.3036983436258/s]: {'loss': 11.094764709472656}\n",
            "16 [289.15017450127107/s]: {'loss': 11.12367057800293}\n",
            "32 [463.462206230706/s]: {'loss': 11.134368896484375}\n",
            "64 [651.1472553062462/s]: {'loss': 10.331193923950195}\n",
            "128 [829.1417045816074/s]: {'loss': 10.033965110778809}\n",
            "256 [954.4269963342613/s]: {'loss': 9.261774063110352}\n",
            "512 [1028.724825630413/s]: {'loss': 9.064922332763672}\n",
            "1024 [1058.4660420806915/s]: {'loss': 9.076525688171387}\n",
            "2048 [1091.7000163438522/s]: {'loss': 9.070883750915527}\n",
            "2500 [1063.6787080275303/s]: {'loss': 8.92398738861084}\n",
            "4096 [1112.3942165085316/s]: {'loss': 9.168190956115723}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.0001\n",
            "0 [0.16901181433483803/s]: {'loss': 16.857027053833008}\n",
            "1 [44.044398240031924/s]: {'loss': 18.234590530395508}\n",
            "2 [44.65636046164985/s]: {'loss': 19.07123374938965}\n",
            "4 [81.78980724042783/s]: {'loss': 17.47575569152832}\n",
            "8 [141.4819787151507/s]: {'loss': 15.996598243713379}\n",
            "16 [221.67161260487546/s]: {'loss': 14.065784454345703}\n",
            "32 [310.5008721562386/s]: {'loss': 14.067517280578613}\n",
            "64 [384.4777665422483/s]: {'loss': 15.456982612609863}\n",
            "128 [442.9562201221434/s]: {'loss': 15.458694458007812}\n",
            "256 [459.5553242484421/s]: {'loss': 15.230594635009766}\n",
            "512 [505.67339207587867/s]: {'loss': 13.31114387512207}\n",
            "1024 [529.4104598004915/s]: {'loss': 13.391875267028809}\n",
            "2048 [535.2216932549466/s]: {'loss': 17.225004196166992}\n",
            "2500 [519.8031168576214/s]: {'loss': 16.589942932128906}\n",
            "4096 [533.601791928986/s]: {'loss': 11.208704948425293}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0001\n",
            "0 [0.5178785409724719/s]: {'loss': 18.823545455932617}\n",
            "1 [45.44995882276451/s]: {'loss': 20.60208511352539}\n",
            "2 [45.96749410926626/s]: {'loss': 20.333179473876953}\n",
            "4 [87.79929455847106/s]: {'loss': 18.89474105834961}\n",
            "8 [163.4218698252518/s]: {'loss': 17.944786071777344}\n",
            "16 [285.2879880288396/s]: {'loss': 16.43552017211914}\n",
            "32 [445.0986847777785/s]: {'loss': 17.198463439941406}\n",
            "64 [604.3039850879998/s]: {'loss': 19.37126350402832}\n",
            "128 [779.1510465193905/s]: {'loss': 18.62055778503418}\n",
            "256 [847.9042285374952/s]: {'loss': 18.244646072387695}\n",
            "512 [910.2646624725647/s]: {'loss': 16.928091049194336}\n",
            "1024 [911.6043331144334/s]: {'loss': 18.584409713745117}\n",
            "2048 [893.8959855127391/s]: {'loss': 20.42936897277832}\n",
            "2500 [882.8427771128942/s]: {'loss': 19.017793655395508}\n",
            "4096 [899.5224283000674/s]: {'loss': 15.87328052520752}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.0001\n",
            "0 [0.14727047257052758/s]: {'loss': 13.701184272766113}\n",
            "1 [44.00327325374011/s]: {'loss': 13.940413475036621}\n",
            "2 [44.53781298447554/s]: {'loss': 14.315503120422363}\n",
            "4 [81.89121012144167/s]: {'loss': 14.643217086791992}\n",
            "8 [142.93809531923594/s]: {'loss': 14.210599899291992}\n",
            "16 [225.98925093279811/s]: {'loss': 13.656636238098145}\n",
            "32 [317.55483840439126/s]: {'loss': 11.08968448638916}\n",
            "64 [399.93721040414545/s]: {'loss': 10.415159225463867}\n",
            "128 [459.3343543217756/s]: {'loss': 9.3660306930542}\n",
            "256 [479.98028836138957/s]: {'loss': 9.392976760864258}\n",
            "512 [518.6755155758417/s]: {'loss': 9.298237800598145}\n",
            "1024 [524.6139625328726/s]: {'loss': 10.399894714355469}\n",
            "2048 [539.1110532038252/s]: {'loss': 8.474528312683105}\n",
            "2500 [530.5986907894866/s]: {'loss': 9.512929916381836}\n",
            "4096 [509.9298095427229/s]: {'loss': 9.822434425354004}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0001\n",
            "0 [0.4390160013607044/s]: {'loss': 15.140593528747559}\n",
            "1 [45.283612061798905/s]: {'loss': 16.18430519104004}\n",
            "2 [45.83938797814208/s]: {'loss': 15.9276123046875}\n",
            "4 [87.11183110584962/s]: {'loss': 15.95042610168457}\n",
            "8 [164.04024443901247/s]: {'loss': 16.726930618286133}\n",
            "16 [281.0065657242396/s]: {'loss': 16.335668563842773}\n",
            "32 [443.4545502603547/s]: {'loss': 14.675989151000977}\n",
            "64 [623.1497311802996/s]: {'loss': 15.301192283630371}\n",
            "128 [741.3050547896784/s]: {'loss': 14.467223167419434}\n",
            "256 [875.333484420372/s]: {'loss': 14.129398345947266}\n",
            "512 [937.3237285472354/s]: {'loss': 14.636445999145508}\n",
            "1024 [963.6626405679258/s]: {'loss': 15.186578750610352}\n",
            "2048 [986.6769560588859/s]: {'loss': 13.73013687133789}\n",
            "2500 [950.949084426574/s]: {'loss': 13.485552787780762}\n",
            "4096 [925.536479423948/s]: {'loss': 14.950032234191895}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=0.0001\n",
            "0 [0.1813287076104074/s]: {'loss': 9.42126750946045}\n",
            "1 [44.935280316259735/s]: {'loss': 9.244481086730957}\n",
            "2 [46.023986920215506/s]: {'loss': 9.50328540802002}\n",
            "4 [87.39043650380248/s]: {'loss': 8.841663360595703}\n",
            "8 [157.25937104560154/s]: {'loss': 7.8604912757873535}\n",
            "16 [262.6199987477303/s]: {'loss': 6.098528861999512}\n",
            "32 [407.7211579938637/s]: {'loss': 4.280801296234131}\n",
            "64 [541.3118342885028/s]: {'loss': 3.2814674377441406}\n",
            "128 [674.5711133727871/s]: {'loss': 2.880270004272461}\n",
            "256 [752.2466505065224/s]: {'loss': 2.6147913932800293}\n",
            "512 [768.2853843280752/s]: {'loss': 2.717764377593994}\n",
            "1024 [832.5364498669676/s]: {'loss': 2.5413782596588135}\n",
            "2048 [850.2237413969866/s]: {'loss': 2.5605850219726562}\n",
            "2500 [840.7539845253316/s]: {'loss': 2.530803918838501}\n",
            "4096 [782.7243583027763/s]: {'loss': 2.6454436779022217}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0001\n",
            "0 [0.47493527862265617/s]: {'loss': 11.313092231750488}\n",
            "1 [45.68311676995632/s]: {'loss': 11.196661949157715}\n",
            "2 [46.011869631514855/s]: {'loss': 11.092145919799805}\n",
            "4 [88.7486167095143/s]: {'loss': 10.818769454956055}\n",
            "8 [163.66578544322937/s]: {'loss': 10.356945037841797}\n",
            "16 [287.5519067615048/s]: {'loss': 9.693845748901367}\n",
            "32 [452.17645354517464/s]: {'loss': 9.408422470092773}\n",
            "64 [634.8092891264248/s]: {'loss': 8.930315971374512}\n",
            "128 [736.4262148467399/s]: {'loss': 9.160379409790039}\n",
            "256 [889.4393230020908/s]: {'loss': 8.944032669067383}\n",
            "512 [987.3170279577209/s]: {'loss': 9.013293266296387}\n",
            "1024 [976.2389796667989/s]: {'loss': 9.069426536560059}\n",
            "2048 [1004.5236173603585/s]: {'loss': 9.056797981262207}\n",
            "2500 [993.8983949369425/s]: {'loss': 8.871742248535156}\n",
            "4096 [1027.1374027810512/s]: {'loss': 9.0950288772583}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.0003\n",
            "0 [0.17140751455090789/s]: {'loss': 16.857027053833008}\n",
            "1 [44.267527889476405/s]: {'loss': 18.08345603942871}\n",
            "2 [44.16916596461668/s]: {'loss': 18.740703582763672}\n",
            "4 [80.74431856464949/s]: {'loss': 16.768278121948242}\n",
            "8 [139.85908401273778/s]: {'loss': 14.24274730682373}\n",
            "16 [221.53257848347803/s]: {'loss': 12.174764633178711}\n",
            "32 [311.47652863256195/s]: {'loss': 12.786860466003418}\n",
            "64 [392.292350725002/s]: {'loss': 15.328137397766113}\n",
            "128 [451.0443826851407/s]: {'loss': 15.437728881835938}\n",
            "256 [484.6551368644932/s]: {'loss': 15.112436294555664}\n",
            "512 [501.04845286258916/s]: {'loss': 13.132168769836426}\n",
            "1024 [519.4807736222225/s]: {'loss': 13.502092361450195}\n",
            "2048 [532.9233489083798/s]: {'loss': 16.567258834838867}\n",
            "2500 [530.632551539214/s]: {'loss': 16.048450469970703}\n",
            "4096 [539.8049399007078/s]: {'loss': 10.492721557617188}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0003\n",
            "0 [0.5178291813496732/s]: {'loss': 18.823545455932617}\n",
            "1 [45.57936145704288/s]: {'loss': 20.452238082885742}\n",
            "2 [46.16176357293008/s]: {'loss': 20.023265838623047}\n",
            "4 [87.8213549136821/s]: {'loss': 18.0678768157959}\n",
            "8 [161.9141075874848/s]: {'loss': 17.15682601928711}\n",
            "16 [277.48134794293986/s]: {'loss': 15.914796829223633}\n",
            "32 [422.7809389411083/s]: {'loss': 16.91395378112793}\n",
            "64 [595.2401623167838/s]: {'loss': 19.329517364501953}\n",
            "128 [736.7010799313894/s]: {'loss': 18.74758529663086}\n",
            "256 [834.3591715323419/s]: {'loss': 18.103900909423828}\n",
            "512 [895.8359675352414/s]: {'loss': 16.65850257873535}\n",
            "1024 [938.416119817533/s]: {'loss': 18.3319149017334}\n",
            "2048 [963.1623576689724/s]: {'loss': 20.146350860595703}\n",
            "2500 [947.5640004478352/s]: {'loss': 19.3089599609375}\n",
            "4096 [977.7432208328647/s]: {'loss': 15.752921104431152}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.0003\n",
            "0 [0.06719569481440474/s]: {'loss': 13.701184272766113}\n",
            "1 [43.75538817834714/s]: {'loss': 13.812787055969238}\n",
            "2 [44.64257660745266/s]: {'loss': 13.999395370483398}\n",
            "4 [81.6393646838991/s]: {'loss': 13.827720642089844}\n",
            "8 [140.1359494157249/s]: {'loss': 12.12424087524414}\n",
            "16 [219.46492949271382/s]: {'loss': 11.648898124694824}\n",
            "32 [303.7851060844058/s]: {'loss': 10.193639755249023}\n",
            "64 [376.0643091501565/s]: {'loss': 10.126011848449707}\n",
            "128 [426.8794463386087/s]: {'loss': 9.33973217010498}\n",
            "256 [466.6113713676826/s]: {'loss': 9.385700225830078}\n",
            "512 [517.9659324157246/s]: {'loss': 9.299169540405273}\n",
            "1024 [534.4886958824519/s]: {'loss': 10.417428016662598}\n",
            "2048 [537.475773798939/s]: {'loss': 7.777723789215088}\n",
            "2500 [516.8797241527477/s]: {'loss': 8.787281036376953}\n",
            "4096 [524.2044097604737/s]: {'loss': 8.902587890625}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0003\n",
            "0 [0.4328242324376289/s]: {'loss': 15.140593528747559}\n",
            "1 [45.39830499301865/s]: {'loss': 16.075138092041016}\n",
            "2 [46.057848154086045/s]: {'loss': 15.613706588745117}\n",
            "4 [87.51899341672839/s]: {'loss': 15.385618209838867}\n",
            "8 [162.46759308575025/s]: {'loss': 15.806792259216309}\n",
            "16 [277.7523818983999/s]: {'loss': 15.893213272094727}\n",
            "32 [439.62858584071955/s]: {'loss': 14.510147094726562}\n",
            "64 [607.8563800638573/s]: {'loss': 15.196839332580566}\n",
            "128 [690.097372114905/s]: {'loss': 14.337069511413574}\n",
            "256 [858.5566255889004/s]: {'loss': 14.258188247680664}\n",
            "512 [906.1945984904941/s]: {'loss': 14.568704605102539}\n",
            "1024 [945.6489460172354/s]: {'loss': 15.236218452453613}\n",
            "2048 [948.445739767915/s]: {'loss': 13.853645324707031}\n",
            "2500 [908.7810465270677/s]: {'loss': 13.538663864135742}\n",
            "4096 [939.733673095656/s]: {'loss': 15.047544479370117}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=0.0003\n",
            "0 [0.17903605590556973/s]: {'loss': 9.42126750946045}\n",
            "1 [45.23428670031491/s]: {'loss': 9.003768920898438}\n",
            "2 [45.949365147182874/s]: {'loss': 8.818105697631836}\n",
            "4 [87.4633302054009/s]: {'loss': 7.083648204803467}\n",
            "8 [156.88878498555223/s]: {'loss': 4.943181991577148}\n",
            "16 [262.6631701722937/s]: {'loss': 3.7295784950256348}\n",
            "32 [395.20437199660796/s]: {'loss': 3.2121689319610596}\n",
            "64 [533.2173070123514/s]: {'loss': 3.0257303714752197}\n",
            "128 [641.571537488976/s]: {'loss': 2.7873425483703613}\n",
            "256 [668.9596758316658/s]: {'loss': 2.681778907775879}\n",
            "512 [765.5187237146139/s]: {'loss': 2.8416144847869873}\n",
            "1024 [791.2087101044477/s]: {'loss': 2.5482594966888428}\n",
            "2048 [802.7614636424789/s]: {'loss': 2.5404469966888428}\n",
            "2500 [787.1845710902264/s]: {'loss': 2.6007308959960938}\n",
            "4096 [801.773932902893/s]: {'loss': 2.631580352783203}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0003\n",
            "0 [0.4704515267030872/s]: {'loss': 11.313092231750488}\n",
            "1 [45.653282248321055/s]: {'loss': 11.022198677062988}\n",
            "2 [46.51861053191961/s]: {'loss': 10.72756576538086}\n",
            "4 [89.58742364048015/s]: {'loss': 9.93554401397705}\n",
            "8 [165.16584299749945/s]: {'loss': 9.570243835449219}\n",
            "16 [283.6312857662105/s]: {'loss': 8.971877098083496}\n",
            "32 [464.3537202205908/s]: {'loss': 9.10956859588623}\n",
            "64 [659.9324814019009/s]: {'loss': 8.833980560302734}\n",
            "128 [842.1847981251/s]: {'loss': 9.111953735351562}\n",
            "256 [966.3181661098952/s]: {'loss': 8.93387508392334}\n",
            "512 [1033.7481746202902/s]: {'loss': 9.026865005493164}\n",
            "1024 [1082.4550458919068/s]: {'loss': 8.87631607055664}\n",
            "2048 [1108.276838566573/s]: {'loss': 9.056670188903809}\n",
            "2500 [1073.6384506695285/s]: {'loss': 8.869765281677246}\n",
            "4096 [1125.1573764259003/s]: {'loss': 9.112648963928223}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.001\n",
            "0 [0.167504527965398/s]: {'loss': 16.857027053833008}\n",
            "1 [44.065221045553876/s]: {'loss': 17.631690979003906}\n",
            "2 [44.45614592938832/s]: {'loss': 17.53243064880371}\n",
            "4 [81.96162113573298/s]: {'loss': 15.233327865600586}\n",
            "8 [141.82763138985402/s]: {'loss': 13.026998519897461}\n",
            "16 [226.36123966161608/s]: {'loss': 11.668581008911133}\n",
            "32 [318.341163523206/s]: {'loss': 12.546712875366211}\n",
            "64 [399.41354077080797/s]: {'loss': 15.387235641479492}\n",
            "128 [456.1241635712999/s]: {'loss': 15.30819320678711}\n",
            "256 [488.03828885541594/s]: {'loss': 15.41878604888916}\n",
            "512 [499.9142510750275/s]: {'loss': 12.796089172363281}\n",
            "1024 [516.0726674299073/s]: {'loss': 12.658823013305664}\n",
            "2048 [526.4053163052071/s]: {'loss': 16.136669158935547}\n",
            "2500 [518.1022941802134/s]: {'loss': 15.034981727600098}\n",
            "4096 [524.3659074347121/s]: {'loss': 10.271547317504883}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.001\n",
            "0 [0.5169606004492325/s]: {'loss': 18.823545455932617}\n",
            "1 [45.72146158541903/s]: {'loss': 19.968799591064453}\n",
            "2 [46.29474613686534/s]: {'loss': 19.517501831054688}\n",
            "4 [88.00193027915613/s]: {'loss': 17.3129825592041}\n",
            "8 [162.15510709038892/s]: {'loss': 16.945194244384766}\n",
            "16 [279.1921720029288/s]: {'loss': 15.874762535095215}\n",
            "32 [436.7929185108045/s]: {'loss': 17.016414642333984}\n",
            "64 [605.4570913027787/s]: {'loss': 19.229183197021484}\n",
            "128 [693.4847293338362/s]: {'loss': 18.66883087158203}\n",
            "256 [851.2288897591727/s]: {'loss': 17.94466781616211}\n",
            "512 [919.5317515982205/s]: {'loss': 16.8548526763916}\n",
            "1024 [948.9576843400242/s]: {'loss': 18.478994369506836}\n",
            "2048 [966.5419332741177/s]: {'loss': 20.79275894165039}\n",
            "2500 [947.2728212092732/s]: {'loss': 19.264808654785156}\n",
            "4096 [990.193660615549/s]: {'loss': 16.129709243774414}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.001\n",
            "0 [0.16330200918552/s]: {'loss': 13.701184272766113}\n",
            "1 [42.688379099069756/s]: {'loss': 13.330626487731934}\n",
            "2 [43.839996655273694/s]: {'loss': 12.68628978729248}\n",
            "4 [79.1923494482049/s]: {'loss': 11.759102821350098}\n",
            "8 [132.97204587425003/s]: {'loss': 10.953876495361328}\n",
            "16 [208.00178529364362/s]: {'loss': 11.580050468444824}\n",
            "32 [294.6252870131752/s]: {'loss': 9.995756149291992}\n",
            "64 [378.2624433879045/s]: {'loss': 10.51008415222168}\n",
            "128 [435.342155794281/s]: {'loss': 9.643136978149414}\n",
            "256 [440.5195869115352/s]: {'loss': 9.37009048461914}\n",
            "512 [490.0567689734995/s]: {'loss': 9.455138206481934}\n",
            "1024 [501.11650026438616/s]: {'loss': 9.921966552734375}\n",
            "2048 [526.0020011497426/s]: {'loss': 7.649301528930664}\n",
            "2500 [520.9860205698507/s]: {'loss': 8.4583101272583}\n",
            "4096 [537.8351871365162/s]: {'loss': 8.66443920135498}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.001\n",
            "0 [0.3807456518348813/s]: {'loss': 15.140593528747559}\n",
            "1 [45.64781681250272/s]: {'loss': 15.694772720336914}\n",
            "2 [46.19430157384055/s]: {'loss': 15.029252052307129}\n",
            "4 [87.44600694263465/s]: {'loss': 14.669477462768555}\n",
            "8 [161.60997177617446/s]: {'loss': 15.376887321472168}\n",
            "16 [274.7953188596886/s]: {'loss': 16.04214859008789}\n",
            "32 [430.10231365762996/s]: {'loss': 14.525842666625977}\n",
            "64 [594.4887629002967/s]: {'loss': 14.930076599121094}\n",
            "128 [753.1837901689389/s]: {'loss': 14.286099433898926}\n",
            "256 [833.9379599799931/s]: {'loss': 14.063199996948242}\n",
            "512 [862.3185595656853/s]: {'loss': 14.36667251586914}\n",
            "1024 [942.9019242809961/s]: {'loss': 15.057889938354492}\n",
            "2048 [955.4756727812385/s]: {'loss': 13.965389251708984}\n",
            "2500 [933.5114232731648/s]: {'loss': 13.968973159790039}\n",
            "4096 [974.8320333843217/s]: {'loss': 15.196645736694336}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=0.001\n",
            "0 [0.18196346122693485/s]: {'loss': 9.42126750946045}\n",
            "1 [43.898728347898896/s]: {'loss': 8.037436485290527}\n",
            "2 [45.57738030556582/s]: {'loss': 6.385873317718506}\n",
            "4 [86.52598789054039/s]: {'loss': 4.308722972869873}\n",
            "8 [151.46129332213886/s]: {'loss': 3.555036783218384}\n",
            "16 [259.1916451667722/s]: {'loss': 3.332244634628296}\n",
            "32 [391.8445440956652/s]: {'loss': 3.163242816925049}\n",
            "64 [539.7705594453404/s]: {'loss': 2.9065473079681396}\n",
            "128 [646.3651721647002/s]: {'loss': 2.8007569313049316}\n",
            "256 [671.9260278121609/s]: {'loss': 2.808450937271118}\n",
            "512 [746.8853679607909/s]: {'loss': 2.785240888595581}\n",
            "1024 [844.18410626069/s]: {'loss': 2.587364673614502}\n",
            "2048 [855.9836494916574/s]: {'loss': 2.9550697803497314}\n",
            "2500 [843.9036846287216/s]: {'loss': 2.861121654510498}\n",
            "4096 [877.8123479195898/s]: {'loss': 2.7062227725982666}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.001\n",
            "0 [0.44887589566671376/s]: {'loss': 11.313092231750488}\n",
            "1 [45.1656059871857/s]: {'loss': 10.479344367980957}\n",
            "2 [46.19735436331795/s]: {'loss': 9.9207124710083}\n",
            "4 [89.6736151198341/s]: {'loss': 9.176959037780762}\n",
            "8 [166.45714852663954/s]: {'loss': 9.239778518676758}\n",
            "16 [291.46339599041033/s]: {'loss': 8.89720344543457}\n",
            "32 [469.4043618762503/s]: {'loss': 9.168975830078125}\n",
            "64 [657.9139138746599/s]: {'loss': 8.818799018859863}\n",
            "128 [857.8816445886132/s]: {'loss': 9.123735427856445}\n",
            "256 [994.5571711475726/s]: {'loss': 8.905852317810059}\n",
            "512 [1110.494758528251/s]: {'loss': 9.024824142456055}\n",
            "1024 [1171.6904596662607/s]: {'loss': 9.077763557434082}\n",
            "2048 [1215.095389533691/s]: {'loss': 9.136375427246094}\n",
            "2500 [1074.3387380117463/s]: {'loss': 8.980875968933105}\n",
            "4096 [1185.4331841147462/s]: {'loss': 9.121526718139648}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.003\n",
            "0 [0.1743437549451491/s]: {'loss': 16.857027053833008}\n",
            "1 [43.82579620496531/s]: {'loss': 17.733867645263672}\n",
            "2 [44.09626039509236/s]: {'loss': 16.682518005371094}\n",
            "4 [80.70314784884168/s]: {'loss': 15.26461124420166}\n",
            "8 [141.05850106778323/s]: {'loss': 13.93140983581543}\n",
            "16 [218.46044467593347/s]: {'loss': 12.431441307067871}\n",
            "32 [302.21458454360817/s]: {'loss': 12.747382164001465}\n",
            "64 [369.7335845646976/s]: {'loss': 15.702807426452637}\n",
            "128 [430.4271409077863/s]: {'loss': 15.49775505065918}\n",
            "256 [465.5665946324695/s]: {'loss': 15.548592567443848}\n",
            "512 [471.720217588236/s]: {'loss': 13.175378799438477}\n",
            "1024 [491.24977364593605/s]: {'loss': 13.188204765319824}\n",
            "2048 [496.942282867255/s]: {'loss': 17.911598205566406}\n",
            "2500 [485.25142818091/s]: {'loss': 16.332571029663086}\n",
            "4096 [501.92362307665314/s]: {'loss': 11.079750061035156}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.003\n",
            "0 [0.5263558547699456/s]: {'loss': 18.823545455932617}\n",
            "1 [45.411084525188656/s]: {'loss': 19.494701385498047}\n",
            "2 [46.17955211062912/s]: {'loss': 19.28291130065918}\n",
            "4 [88.06382800033593/s]: {'loss': 17.438854217529297}\n",
            "8 [162.82394044973262/s]: {'loss': 17.079517364501953}\n",
            "16 [277.85358098092956/s]: {'loss': 15.82184886932373}\n",
            "32 [427.6492846901386/s]: {'loss': 16.814714431762695}\n",
            "64 [592.455044251694/s]: {'loss': 19.400270462036133}\n",
            "128 [731.3341161534291/s]: {'loss': 18.820592880249023}\n",
            "256 [831.0103491082679/s]: {'loss': 18.14432144165039}\n",
            "512 [874.5072172337264/s]: {'loss': 17.08027458190918}\n",
            "1024 [931.3342914909875/s]: {'loss': 18.72403335571289}\n",
            "2048 [945.7732632817194/s]: {'loss': 20.739803314208984}\n",
            "2500 [912.7068622041975/s]: {'loss': 19.58091163635254}\n",
            "4096 [948.4304234062123/s]: {'loss': 16.537229537963867}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.003\n",
            "0 [0.16295479897792708/s]: {'loss': 13.701184272766113}\n",
            "1 [43.157935895457115/s]: {'loss': 12.757050514221191}\n",
            "2 [43.99265793310328/s]: {'loss': 11.888360977172852}\n",
            "4 [80.14644679265473/s]: {'loss': 11.63176155090332}\n",
            "8 [137.2492903246918/s]: {'loss': 11.34124755859375}\n",
            "16 [216.41877144552515/s]: {'loss': 12.087018013000488}\n",
            "32 [303.199045794629/s]: {'loss': 10.67406177520752}\n",
            "64 [382.2113731308431/s]: {'loss': 10.928333282470703}\n",
            "128 [427.38714664416443/s]: {'loss': 9.770225524902344}\n",
            "256 [466.2470696229959/s]: {'loss': 9.68659496307373}\n",
            "512 [463.5796626970849/s]: {'loss': 10.233431816101074}\n",
            "1024 [489.040991397823/s]: {'loss': 10.49814224243164}\n",
            "2048 [509.75954192267096/s]: {'loss': 8.352767944335938}\n",
            "2500 [510.07995970642946/s]: {'loss': 9.073614120483398}\n",
            "4096 [520.7118174685153/s]: {'loss': 9.37076473236084}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.003\n",
            "0 [0.4495282974379816/s]: {'loss': 15.140593528747559}\n",
            "1 [45.42633106615258/s]: {'loss': 15.216330528259277}\n",
            "2 [45.55559900076029/s]: {'loss': 14.709616661071777}\n",
            "4 [87.3749622423365/s]: {'loss': 14.353876113891602}\n",
            "8 [160.8307066988765/s]: {'loss': 15.372178077697754}\n",
            "16 [277.8328751697413/s]: {'loss': 16.062522888183594}\n",
            "32 [439.9686883322079/s]: {'loss': 14.681448936462402}\n",
            "64 [614.341880498366/s]: {'loss': 14.92285442352295}\n",
            "128 [761.4714996510857/s]: {'loss': 14.439823150634766}\n",
            "256 [874.9511685932715/s]: {'loss': 14.434929847717285}\n",
            "512 [923.7275466899977/s]: {'loss': 14.403757095336914}\n",
            "1024 [947.2669972311803/s]: {'loss': 15.229766845703125}\n",
            "2048 [947.0996799682813/s]: {'loss': 14.310371398925781}\n",
            "2500 [927.0245239148878/s]: {'loss': 14.330046653747559}\n",
            "4096 [968.9798597622115/s]: {'loss': 15.358360290527344}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=0.003\n",
            "0 [0.16925705894843698/s]: {'loss': 9.42126750946045}\n",
            "1 [45.539771123319795/s]: {'loss': 6.96829891204834}\n",
            "2 [46.06745966369018/s]: {'loss': 4.820939540863037}\n",
            "4 [87.42231254233755/s]: {'loss': 4.107982158660889}\n",
            "8 [157.3286820833099/s]: {'loss': 4.05427885055542}\n",
            "16 [263.90058829081073/s]: {'loss': 3.6146676540374756}\n",
            "32 [399.0655843962775/s]: {'loss': 4.18004035949707}\n",
            "64 [539.4516486873201/s]: {'loss': 3.637625217437744}\n",
            "128 [645.142616808504/s]: {'loss': 3.911099433898926}\n",
            "256 [669.8761641429013/s]: {'loss': 3.8673782348632812}\n",
            "512 [761.9724247264862/s]: {'loss': 3.6607251167297363}\n",
            "1024 [775.261216463605/s]: {'loss': 4.328029632568359}\n",
            "2048 [815.9070402200591/s]: {'loss': 4.29062557220459}\n",
            "2500 [801.2634620220664/s]: {'loss': 4.18565034866333}\n",
            "4096 [774.1125874852066/s]: {'loss': 4.459844589233398}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.003\n",
            "0 [0.43107077660908577/s]: {'loss': 11.313092231750488}\n",
            "1 [46.032573861890334/s]: {'loss': 9.830086708068848}\n",
            "2 [46.48458384129447/s]: {'loss': 9.56977367401123}\n",
            "4 [89.30796665566545/s]: {'loss': 9.06601333618164}\n",
            "8 [165.89587762407174/s]: {'loss': 9.297293663024902}\n",
            "16 [288.7570200425118/s]: {'loss': 9.015807151794434}\n",
            "32 [457.98094614145714/s]: {'loss': 9.179924964904785}\n",
            "64 [658.8504921090739/s]: {'loss': 8.928400993347168}\n",
            "128 [833.720392703736/s]: {'loss': 9.10784912109375}\n",
            "256 [958.9069618738368/s]: {'loss': 9.008307456970215}\n",
            "512 [992.100852728148/s]: {'loss': 9.090860366821289}\n",
            "1024 [1072.5362932064359/s]: {'loss': 9.090523719787598}\n",
            "2048 [1133.1939971658062/s]: {'loss': 9.167160034179688}\n",
            "2500 [1130.0825811174184/s]: {'loss': 8.991887092590332}\n",
            "4096 [1202.983577762886/s]: {'loss': 9.138318061828613}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.01\n",
            "0 [0.17654326734921189/s]: {'loss': 16.857027053833008}\n",
            "1 [43.57763717025632/s]: {'loss': 18.66915512084961}\n",
            "2 [43.97928069623571/s]: {'loss': 18.335205078125}\n",
            "4 [80.81510597302506/s]: {'loss': 16.590078353881836}\n",
            "8 [138.7142904388663/s]: {'loss': 15.619733810424805}\n",
            "16 [218.352402209916/s]: {'loss': 14.644148826599121}\n",
            "32 [300.61308009317327/s]: {'loss': 15.467781066894531}\n",
            "64 [384.72793982755456/s]: {'loss': 18.69976806640625}\n",
            "128 [450.28248978023953/s]: {'loss': 18.531436920166016}\n",
            "256 [460.0570299391756/s]: {'loss': 18.722362518310547}\n",
            "512 [497.8300813596162/s]: {'loss': 16.51324462890625}\n",
            "1024 [517.7833467069934/s]: {'loss': 17.750354766845703}\n",
            "2048 [520.5024123864763/s]: {'loss': 21.24844741821289}\n",
            "2500 [508.7608059234228/s]: {'loss': 19.171585083007812}\n",
            "4096 [518.8871520241695/s]: {'loss': 16.468408584594727}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.01\n",
            "0 [0.525428969006197/s]: {'loss': 18.823545455932617}\n",
            "1 [45.391426685280784/s]: {'loss': 19.42755889892578}\n",
            "2 [46.15058921910588/s]: {'loss': 19.583717346191406}\n",
            "4 [88.56122718299004/s]: {'loss': 17.880525588989258}\n",
            "8 [162.14570406881222/s]: {'loss': 17.787334442138672}\n",
            "16 [281.8089831020929/s]: {'loss': 16.47543716430664}\n",
            "32 [435.07685126356597/s]: {'loss': 17.586231231689453}\n",
            "64 [597.7905515247882/s]: {'loss': 20.173412322998047}\n",
            "128 [754.216496728133/s]: {'loss': 19.681440353393555}\n",
            "256 [874.663225823269/s]: {'loss': 18.51595115661621}\n",
            "512 [931.8798853008769/s]: {'loss': 17.48464584350586}\n",
            "1024 [991.001155523068/s]: {'loss': 19.391876220703125}\n",
            "2048 [987.4552672460549/s]: {'loss': 22.049060821533203}\n",
            "2500 [954.1884011141276/s]: {'loss': 20.023941040039062}\n",
            "4096 [898.9440579612055/s]: {'loss': 16.832794189453125}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.01\n",
            "0 [0.16248071552963267/s]: {'loss': 13.701184272766113}\n",
            "1 [43.878062558845066/s]: {'loss': 12.993860244750977}\n",
            "2 [44.408135607576575/s]: {'loss': 12.383808135986328}\n",
            "4 [80.98988182590561/s]: {'loss': 13.313726425170898}\n",
            "8 [140.06224537500836/s]: {'loss': 13.316962242126465}\n",
            "16 [223.36860604446812/s]: {'loss': 13.654143333435059}\n",
            "32 [313.8171870542958/s]: {'loss': 13.027092933654785}\n",
            "64 [390.5947430912858/s]: {'loss': 13.480996131896973}\n",
            "128 [444.26333193209166/s]: {'loss': 13.165536880493164}\n",
            "256 [463.33341273170083/s]: {'loss': 13.760761260986328}\n",
            "512 [501.64912372501897/s]: {'loss': 14.061805725097656}\n",
            "1024 [507.84142645998134/s]: {'loss': 14.803383827209473}\n",
            "2048 [514.7559661809347/s]: {'loss': 13.438526153564453}\n",
            "2500 [522.1208231651312/s]: {'loss': 14.052938461303711}\n",
            "4096 [530.3677473849074/s]: {'loss': 14.478001594543457}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.01\n",
            "0 [0.44508298009952624/s]: {'loss': 15.140593528747559}\n",
            "1 [45.33500508009252/s]: {'loss': 15.239273071289062}\n",
            "2 [46.08011250027466/s]: {'loss': 14.860859870910645}\n",
            "4 [86.6305353602115/s]: {'loss': 14.69868278503418}\n",
            "8 [159.25670403523594/s]: {'loss': 15.471860885620117}\n",
            "16 [274.51430067412787/s]: {'loss': 16.057279586791992}\n",
            "32 [428.49029160308265/s]: {'loss': 14.636734008789062}\n",
            "64 [611.8354370945758/s]: {'loss': 14.978057861328125}\n",
            "128 [755.7687495424881/s]: {'loss': 14.360835075378418}\n",
            "256 [874.2672579024592/s]: {'loss': 14.488606452941895}\n",
            "512 [893.1191860513476/s]: {'loss': 14.32203197479248}\n",
            "1024 [929.524676200481/s]: {'loss': 15.323748588562012}\n",
            "2048 [934.4088499525939/s]: {'loss': 14.152304649353027}\n",
            "2500 [890.0091534792188/s]: {'loss': 14.260108947753906}\n",
            "4096 [927.3619233399779/s]: {'loss': 15.28006362915039}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=0.01\n",
            "0 [0.17280902464121756/s]: {'loss': 9.42126750946045}\n",
            "1 [44.83441117679127/s]: {'loss': 7.515974998474121}\n",
            "2 [45.39339170337341/s]: {'loss': 6.730313301086426}\n",
            "4 [86.70395865633076/s]: {'loss': 6.244998931884766}\n",
            "8 [154.09895933794422/s]: {'loss': 6.074200630187988}\n",
            "16 [260.0110964742348/s]: {'loss': 7.538391590118408}\n",
            "32 [389.7237101907129/s]: {'loss': 7.129357814788818}\n",
            "64 [521.600534744811/s]: {'loss': 7.290647983551025}\n",
            "128 [637.7229740003041/s]: {'loss': 6.9365644454956055}\n",
            "256 [638.0776906730307/s]: {'loss': 7.018187522888184}\n",
            "512 [751.3707233647109/s]: {'loss': 7.068386077880859}\n",
            "1024 [772.4127834120079/s]: {'loss': 7.111955165863037}\n",
            "2048 [801.5989727510265/s]: {'loss': 7.457320213317871}\n",
            "2500 [782.0568289212769/s]: {'loss': 7.296140193939209}\n",
            "4096 [878.606860424276/s]: {'loss': 6.881265163421631}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.01\n",
            "0 [0.4773902010982821/s]: {'loss': 11.313092231750488}\n",
            "1 [46.091252747252746/s]: {'loss': 9.7349214553833}\n",
            "2 [46.961853257644464/s]: {'loss': 9.416544914245605}\n",
            "4 [90.18747916957845/s]: {'loss': 9.255929946899414}\n",
            "8 [166.97900970390646/s]: {'loss': 9.420448303222656}\n",
            "16 [295.44894383249243/s]: {'loss': 9.201032638549805}\n",
            "32 [479.1334185330887/s]: {'loss': 9.527892112731934}\n",
            "64 [675.5812553480646/s]: {'loss': 9.178376197814941}\n",
            "128 [864.8467419495144/s]: {'loss': 9.431943893432617}\n",
            "256 [1061.8659155999303/s]: {'loss': 9.3010835647583}\n",
            "512 [1086.8195233241597/s]: {'loss': 9.231051445007324}\n",
            "1024 [1168.2077777390941/s]: {'loss': 9.447453498840332}\n",
            "2048 [1176.389127835715/s]: {'loss': 9.543289184570312}\n",
            "2500 [1131.8759335403456/s]: {'loss': 9.163145065307617}\n",
            "4096 [1132.9401083197642/s]: {'loss': 9.541841506958008}\n"
          ]
        }
      ],
      "source": [
        "results = []\n",
        "for ex in experiments:\n",
        "  print(\"=\" * 20)\n",
        "  print(f\"Training: {ex.name}\")\n",
        "  res = ex.train(jax.random.PRNGKey(0))\n",
        "  time.sleep(0.1)\n",
        "  client = jax.lib.xla_bridge.get_backend()\n",
        "  client.defragment()\n",
        "  results.append(res)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 880
        },
        "executionInfo": {
          "elapsed": 1812,
          "status": "ok",
          "timestamp": 1633403933775,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "FWBP1_wME1tf",
        "outputId": "b17fdd80-aeb7-4df2-ba50-7c042036df7f"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7f4c89d59790>"
            ]
          },
          "execution_count": 273,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 1500x1500 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "plt.figure(figsize=(15,15))\n",
        "WINDOW_SIZE = 25\n",
        "for ex, res in zip(experiments, results):\n",
        "  plt.plot(np.arange(0, ex.num_steps, WINDOW_SIZE), np.reshape([m[\"loss\"] for m in res.all_metrics], [-1, WINDOW_SIZE]).mean(-1), label=ex.name)\n",
        "plt.legend()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "p_wHMvkuFd2u"
      },
      "source": [
        "#### Extract subset for each mode"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-eby3ldSP-Lx"
      },
      "source": [
        "##### Independent"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 337
        },
        "executionInfo": {
          "elapsed": 610,
          "status": "ok",
          "timestamp": 1633403934804,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "m8Wa-1TgMlrc",
        "outputId": "dc936c7e-e95e-4055-dd35-f9d2ef790e77"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7f4caaa72a10>"
            ]
          },
          "execution_count": 274,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 500x500 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "indices = [i for i, ex in enumerate(experiments) if (ex.metadata[\"p_q_mode\"] == \"independent\")]\n",
        "plt.figure(figsize=(5,5))\n",
        "WINDOW_SIZE = 25\n",
        "for i in indices:\n",
        "  plt.plot(np.arange(0, experiments[i].num_steps, WINDOW_SIZE), np.reshape([m[\"loss\"] for m in results[i].all_metrics], [-1, WINDOW_SIZE]).mean(-1), label=experiments[i].name)\n",
        "plt.legend()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "pMov6jfXXdle"
      },
      "outputs": [],
      "source": [
        "eval_results_independent = experiment_util.evaluate_all([experiments[i] for i in indices], [results[i] for i in indices],\n",
        "                                    seed=765987, num_pairs=10_000, samples_per_pair=1_000, loop_size=500)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 342
        },
        "executionInfo": {
          "elapsed": 161,
          "status": "ok",
          "timestamp": 1633404045070,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "xlp4M2b7mjYb",
        "outputId": "33f2a7c2-a7eb-46c2-b879-9dedfce25b31"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: &#x27;average: 16.4429, inner st.dev.: +/- 18.01, errorbars: +/- 0.0716&#x27;, &#x27;ICDF&#x27;: &#x27;average: 8.0650, inner st.dev.: +/- 9.236, errorbars: +/- 0.0710&#x27;, &#x27;ICDF (permuted)&#x27;: &#x27;average: 15.5358, inner st.dev.: +/- 17.8, errorbars: +/- 0.0866&#x27;, &#x27;Gumbel-max&#x27;: &#x27;average: 13.9369, inner st.dev.: +/- 17.36, errorbars: +/- 0.0724&#x27;, &#x27;G2 relaxed independent lr=1e-05&#x27;: &#x27;average: 9.6486, inner st.dev.: +/- 12...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: &#x27;average: 16.4429, inner st.dev.: +/- 18.01, errorbars: +/- 0.0716&#x27;</li><li>&#x27;ICDF&#x27;: &#x27;average: 8.0650, inner st.dev.: +/- 9.236, errorbars: +/- 0.0710&#x27;</li><li>&#x27;ICDF (permuted)&#x27;: &#x27;average: 15.5358, inner st.dev.: +/- 17.8, errorbars: +/- 0.0866&#x27;</li><li>&#x27;Gumbel-max&#x27;: &#x27;average: 13.9369, inner st.dev.: +/- 17.36, errorbars: +/- 0.0724&#x27;</li><li>&#x27;G2 relaxed independent lr=1e-05&#x27;: &#x27;average: 9.6486, inner st.dev.: +/- 12.21, errorbars: +/- 0.0700&#x27;</li><li>&#x27;G1 relaxed independent lr=1e-05&#x27;: &#x27;average: 14.0209, inner st.dev.: +/- 17.02, errorbars: +/- 0.0707&#x27;</li><li>&#x27;G2 relaxed independent lr=0.0001&#x27;: &#x27;average: 9.3079, inner st.dev.: +/- 11.64, errorbars: +/- 0.0698&#x27;</li><li>&#x27;G1 relaxed independent lr=0.0001&#x27;: &#x27;average: 13.9911, inner st.dev.: +/- 17.15, errorbars: +/- 0.0714&#x27;</li><li>&#x27;G2 relaxed independent lr=0.0003&#x27;: &#x27;average: 8.8592, inner st.dev.: +/- 10.85, errorbars: +/- 0.0704&#x27;</li><li>&#x27;G1 relaxed independent lr=0.0003&#x27;: &#x27;average: 14.0315, inner st.dev.: +/- 17.02, errorbars: +/- 0.0712&#x27;</li><li>&#x27;G2 relaxed independent lr=0.001&#x27;: &#x27;average: 8.8147, inner st.dev.: +/- 10.73, errorbars: +/- 0.0705&#x27;</li><li>&#x27;G1 relaxed independent lr=0.001&#x27;: &#x27;average: 14.1306, inner st.dev.: +/- 16.77, errorbars: +/- 0.0696&#x27;</li><li>&#x27;G2 relaxed independent lr=0.003&#x27;: &#x27;average: 9.2065, inner st.dev.: +/- 11.6, errorbars: +/- 0.0710&#x27;</li><li>&#x27;G1 relaxed independent lr=0.003&#x27;: &#x27;average: 14.3617, inner st.dev.: +/- 16.94, errorbars: +/- 0.0702&#x27;</li><li>&#x27;G2 relaxed independent lr=0.01&#x27;: &#x27;average: 13.8375, inner st.dev.: +/- 17.28, errorbars: +/- 0.0716&#x27;</li><li>&#x27;G1 relaxed independent lr=0.01&#x27;: &#x27;average: 14.3397, inner st.dev.: +/- 17.09, errorbars: +/- 0.0707&#x27;</li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'Independent': 'average: 16.4429, inner st.dev.: +/- 18.01, errorbars: +/- 0.0716',\n",
              " 'ICDF': 'average: 8.0650, inner st.dev.: +/- 9.236, errorbars: +/- 0.0710',\n",
              " 'ICDF (permuted)': 'average: 15.5358, inner st.dev.: +/- 17.8, errorbars: +/- 0.0866',\n",
              " 'Gumbel-max': 'average: 13.9369, inner st.dev.: +/- 17.36, errorbars: +/- 0.0724',\n",
              " 'G2 relaxed independent lr=1e-05':\n",
              "   'average: 9.6486, inner st.dev.: +/- 12.21, errorbars: +/- 0.0700',\n",
              " 'G1 relaxed independent lr=1e-05':\n",
              "   'average: 14.0209, inner st.dev.: +/- 17.02, errorbars: +/- 0.0707',\n",
              " 'G2 relaxed independent lr=0.0001':\n",
              "   'average: 9.3079, inner st.dev.: +/- 11.64, errorbars: +/- 0.0698',\n",
              " 'G1 relaxed independent lr=0.0001':\n",
              "   'average: 13.9911, inner st.dev.: +/- 17.15, errorbars: +/- 0.0714',\n",
              " 'G2 relaxed independent lr=0.0003':\n",
              "   'average: 8.8592, inner st.dev.: +/- 10.85, errorbars: +/- 0.0704',\n",
              " 'G1 relaxed independent lr=0.0003':\n",
              "   'average: 14.0315, inner st.dev.: +/- 17.02, errorbars: +/- 0.0712',\n",
              " 'G2 relaxed independent lr=0.001':\n",
              "   'average: 8.8147, inner st.dev.: +/- 10.73, errorbars: +/- 0.0705',\n",
              " 'G1 relaxed independent lr=0.001':\n",
              "   'average: 14.1306, inner st.dev.: +/- 16.77, errorbars: +/- 0.0696',\n",
              " 'G2 relaxed independent lr=0.003':\n",
              "   'average: 9.2065, inner st.dev.: +/- 11.6, errorbars: +/- 0.0710',\n",
              " 'G1 relaxed independent lr=0.003':\n",
              "   'average: 14.3617, inner st.dev.: +/- 16.94, errorbars: +/- 0.0702',\n",
              " 'G2 relaxed independent lr=0.01':\n",
              "   'average: 13.8375, inner st.dev.: +/- 17.28, errorbars: +/- 0.0716',\n",
              " 'G1 relaxed independent lr=0.01':\n",
              "   'average: 14.3397, inner st.dev.: +/- 17.09, errorbars: +/- 0.0707'}"
            ]
          },
          "execution_count": 276,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "{k:summary for k, (summary, _, _, _) in eval_results_independent.items()}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 98
        },
        "executionInfo": {
          "elapsed": 67,
          "status": "ok",
          "timestamp": 1633404045441,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "13D1gvfcliKQ",
        "outputId": "917a2a7b-da05-4ad4-c717-49ed2754d946"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;G2 relaxed independent&#x27;: (&#x27;G2 relaxed independent lr=0.001&#x27;, 20, DeviceArray(8.814732, dtype=float32)), &#x27;G1 relaxed independent&#x27;: (&#x27;G1 relaxed independent lr=0.0001&#x27;, 9, DeviceArray(13.991138, dtype=float32))}</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;G2 relaxed independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;G2 relaxed independent lr=0.001&#x27;, 20, DeviceArray(8.814732, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;G2 relaxed independent lr=0.001&#x27;,</li><li>20,</li><li>DeviceArray(8.814732, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;G1 relaxed independent lr=0.0001&#x27;, 9, DeviceArray(13.991138, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;G1 relaxed independent lr=0.0001&#x27;,</li><li>9,</li><li>DeviceArray(13.991138, dtype=float32),</li></ul>)</details></li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'G2 relaxed independent':\n",
              "   ('G2 relaxed independent lr=0.001',\n",
              "    20,\n",
              "    DeviceArray(8.814732, dtype=float32)),\n",
              " 'G1 relaxed independent':\n",
              "   ('G1 relaxed independent lr=0.0001',\n",
              "    9,\n",
              "    DeviceArray(13.991138, dtype=float32))}"
            ]
          },
          "execution_count": 277,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "lr_bests = {}\n",
        "for i in indices:\n",
        "  ex = experiments[i]\n",
        "  shortname = ex.name.split(\" lr=\")[0]\n",
        "  if shortname not in lr_bests or eval_results_independent[ex.name][1] < lr_bests[shortname][2]:\n",
        "    lr_bests[shortname] = (ex.name, i, eval_results_independent[ex.name][1])\n",
        "\n",
        "lr_best_subset = [i for _, i, _ in lr_bests.values()]\n",
        "lr_best_subset_independent = lr_best_subset\n",
        "lr_bests"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 220
        },
        "executionInfo": {
          "elapsed": 19432,
          "status": "ok",
          "timestamp": 1633404065362,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "t7jg18LBkrDR",
        "outputId": "fb4a29a1-4060-47b4-90f1-ba6b5de59de0"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_independent], [results[i] for i in lr_best_subset_independent], 1)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 220
        },
        "executionInfo": {
          "elapsed": 19548,
          "status": "ok",
          "timestamp": 1633404085284,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "lLiCINVFWqCB",
        "outputId": "43fac642-6272-4652-9008-3b9c1d20bc8d"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_independent], [results[i] for i in lr_best_subset_independent], 2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 220
        },
        "executionInfo": {
          "elapsed": 19450,
          "status": "ok",
          "timestamp": 1633404104919,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "XOQJeRBhW8xX",
        "outputId": "74d5c07f-bc1b-45af-d0c1-767cf45c62c6"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_independent], [results[i] for i in lr_best_subset_independent], 3)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nKsDxEQ88qAh"
      },
      "source": [
        "##### Reverse"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 340
        },
        "executionInfo": {
          "elapsed": 647,
          "status": "ok",
          "timestamp": 1633404105803,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "szSc2J9XlFSF",
        "outputId": "4cc8f98d-2951-40d5-cb3f-d036b2fc92b0"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7f4c803ab150>"
            ]
          },
          "execution_count": 281,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 500x500 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "indices = [i for i, ex in enumerate(experiments) if (ex.metadata[\"p_q_mode\"] == \"reverse\")]\n",
        "plt.figure(figsize=(5,5))\n",
        "WINDOW_SIZE = 25\n",
        "for i in indices:\n",
        "  plt.plot(np.arange(0, experiments[i].num_steps, WINDOW_SIZE), np.reshape([m[\"loss\"] for m in results[i].all_metrics], [-1, WINDOW_SIZE]).mean(-1), label=experiments[i].name)\n",
        "plt.legend()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "4uHhraNplWjI"
      },
      "outputs": [],
      "source": [
        "eval_results_reverse = experiment_util.evaluate_all([experiments[i] for i in indices], [results[i] for i in indices],\n",
        "                                    seed=765987, num_pairs=10_000, samples_per_pair=1_000, loop_size=500)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 342
        },
        "executionInfo": {
          "elapsed": 151,
          "status": "ok",
          "timestamp": 1633404207327,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "e2e0SY-AlWjK",
        "outputId": "5251dcac-2d33-47ac-f086-7a92613c9bca"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: &#x27;average: 21.4180, inner st.dev.: +/- 20.51, errorbars: +/- 0.1233&#x27;, &#x27;ICDF&#x27;: &#x27;average: 12.7086, inner st.dev.: +/- 11.89, errorbars: +/- 0.1325&#x27;, &#x27;ICDF (permuted)&#x27;: &#x27;average: 21.0385, inner st.dev.: +/- 20.6, errorbars: +/- 0.1459&#x27;, &#x27;Gumbel-max&#x27;: &#x27;average: 18.9085, inner st.dev.: +/- 20.18, errorbars: +/- 0.1273&#x27;, &#x27;G2 relaxed reverse lr=1e-05&#x27;: &#x27;average: 14.2178, inner st.dev.: +/- 14.4...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: &#x27;average: 21.4180, inner st.dev.: +/- 20.51, errorbars: +/- 0.1233&#x27;</li><li>&#x27;ICDF&#x27;: &#x27;average: 12.7086, inner st.dev.: +/- 11.89, errorbars: +/- 0.1325&#x27;</li><li>&#x27;ICDF (permuted)&#x27;: &#x27;average: 21.0385, inner st.dev.: +/- 20.6, errorbars: +/- 0.1459&#x27;</li><li>&#x27;Gumbel-max&#x27;: &#x27;average: 18.9085, inner st.dev.: +/- 20.18, errorbars: +/- 0.1273&#x27;</li><li>&#x27;G2 relaxed reverse lr=1e-05&#x27;: &#x27;average: 14.2178, inner st.dev.: +/- 14.44, errorbars: +/- 0.1292&#x27;</li><li>&#x27;G1 relaxed reverse lr=1e-05&#x27;: &#x27;average: 18.7739, inner st.dev.: +/- 19.54, errorbars: +/- 0.1242&#x27;</li><li>&#x27;G2 relaxed reverse lr=0.0001&#x27;: &#x27;average: 13.8670, inner st.dev.: +/- 13.9, errorbars: +/- 0.1300&#x27;</li><li>&#x27;G1 relaxed reverse lr=0.0001&#x27;: &#x27;average: 17.6351, inner st.dev.: +/- 18.62, errorbars: +/- 0.1232&#x27;</li><li>&#x27;G2 relaxed reverse lr=0.0003&#x27;: &#x27;average: 13.6066, inner st.dev.: +/- 13.27, errorbars: +/- 0.1312&#x27;</li><li>&#x27;G1 relaxed reverse lr=0.0003&#x27;: &#x27;average: 18.1914, inner st.dev.: +/- 19.04, errorbars: +/- 0.1260&#x27;</li><li>&#x27;G2 relaxed reverse lr=0.001&#x27;: &#x27;average: 13.5656, inner st.dev.: +/- 13.05, errorbars: +/- 0.1316&#x27;</li><li>&#x27;G1 relaxed reverse lr=0.001&#x27;: &#x27;average: 18.3887, inner st.dev.: +/- 19.05, errorbars: +/- 0.1228&#x27;</li><li>&#x27;G2 relaxed reverse lr=0.003&#x27;: &#x27;average: 13.7463, inner st.dev.: +/- 13.78, errorbars: +/- 0.1317&#x27;</li><li>&#x27;G1 relaxed reverse lr=0.003&#x27;: &#x27;average: 19.1777, inner st.dev.: +/- 19.67, errorbars: +/- 0.1224&#x27;</li><li>&#x27;G2 relaxed reverse lr=0.01&#x27;: &#x27;average: 18.9606, inner st.dev.: +/- 20.16, errorbars: +/- 0.1267&#x27;</li><li>&#x27;G1 relaxed reverse lr=0.01&#x27;: &#x27;average: 19.9766, inner st.dev.: +/- 19.69, errorbars: +/- 0.1239&#x27;</li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'Independent': 'average: 21.4180, inner st.dev.: +/- 20.51, errorbars: +/- 0.1233',\n",
              " 'ICDF': 'average: 12.7086, inner st.dev.: +/- 11.89, errorbars: +/- 0.1325',\n",
              " 'ICDF (permuted)': 'average: 21.0385, inner st.dev.: +/- 20.6, errorbars: +/- 0.1459',\n",
              " 'Gumbel-max': 'average: 18.9085, inner st.dev.: +/- 20.18, errorbars: +/- 0.1273',\n",
              " 'G2 relaxed reverse lr=1e-05':\n",
              "   'average: 14.2178, inner st.dev.: +/- 14.44, errorbars: +/- 0.1292',\n",
              " 'G1 relaxed reverse lr=1e-05':\n",
              "   'average: 18.7739, inner st.dev.: +/- 19.54, errorbars: +/- 0.1242',\n",
              " 'G2 relaxed reverse lr=0.0001':\n",
              "   'average: 13.8670, inner st.dev.: +/- 13.9, errorbars: +/- 0.1300',\n",
              " 'G1 relaxed reverse lr=0.0001':\n",
              "   'average: 17.6351, inner st.dev.: +/- 18.62, errorbars: +/- 0.1232',\n",
              " 'G2 relaxed reverse lr=0.0003':\n",
              "   'average: 13.6066, inner st.dev.: +/- 13.27, errorbars: +/- 0.1312',\n",
              " 'G1 relaxed reverse lr=0.0003':\n",
              "   'average: 18.1914, inner st.dev.: +/- 19.04, errorbars: +/- 0.1260',\n",
              " 'G2 relaxed reverse lr=0.001':\n",
              "   'average: 13.5656, inner st.dev.: +/- 13.05, errorbars: +/- 0.1316',\n",
              " 'G1 relaxed reverse lr=0.001':\n",
              "   'average: 18.3887, inner st.dev.: +/- 19.05, errorbars: +/- 0.1228',\n",
              " 'G2 relaxed reverse lr=0.003':\n",
              "   'average: 13.7463, inner st.dev.: +/- 13.78, errorbars: +/- 0.1317',\n",
              " 'G1 relaxed reverse lr=0.003':\n",
              "   'average: 19.1777, inner st.dev.: +/- 19.67, errorbars: +/- 0.1224',\n",
              " 'G2 relaxed reverse lr=0.01':\n",
              "   'average: 18.9606, inner st.dev.: +/- 20.16, errorbars: +/- 0.1267',\n",
              " 'G1 relaxed reverse lr=0.01':\n",
              "   'average: 19.9766, inner st.dev.: +/- 19.69, errorbars: +/- 0.1239'}"
            ]
          },
          "execution_count": 283,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "{k:summary for k, (summary, _, _, _) in eval_results_reverse.items()}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 98
        },
        "executionInfo": {
          "elapsed": 643,
          "status": "ok",
          "timestamp": 1633405412667,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "3vCOGfOymwtf",
        "outputId": "66db3ecf-9e57-4b43-8bd0-b2f5bb25d3cf"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;G2 relaxed reverse&#x27;: (&#x27;G2 relaxed reverse lr=0.001&#x27;, 18, DeviceArray(13.56559, dtype=float32)), &#x27;G1 relaxed reverse&#x27;: (&#x27;G1 relaxed reverse lr=0.0001&#x27;, 7, DeviceArray(17.635136, dtype=float32))}</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;G2 relaxed reverse&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;G2 relaxed reverse lr=0.001&#x27;, 18, DeviceArray(13.56559, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;G2 relaxed reverse lr=0.001&#x27;,</li><li>18,</li><li>DeviceArray(13.56559, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed reverse&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;G1 relaxed reverse lr=0.0001&#x27;, 7, DeviceArray(17.635136, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;G1 relaxed reverse lr=0.0001&#x27;,</li><li>7,</li><li>DeviceArray(17.635136, dtype=float32),</li></ul>)</details></li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'G2 relaxed reverse': ('G2 relaxed reverse lr=0.001',\n",
              "                        18,\n",
              "                        DeviceArray(13.56559, dtype=float32)),\n",
              " 'G1 relaxed reverse': ('G1 relaxed reverse lr=0.0001',\n",
              "                        7,\n",
              "                        DeviceArray(17.635136, dtype=float32))}"
            ]
          },
          "execution_count": 285,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "lr_bests = {}\n",
        "for i in indices:\n",
        "  ex = experiments[i]\n",
        "  shortname = ex.name.split(\" lr=\")[0]\n",
        "  if shortname not in lr_bests or eval_results_reverse[ex.name][1] < lr_bests[shortname][2]:\n",
        "    lr_bests[shortname] = (ex.name, i, eval_results_reverse[ex.name][1])\n",
        "\n",
        "lr_best_subset = [i for _, i, _ in lr_bests.values()]\n",
        "lr_best_subset_reverse = lr_best_subset\n",
        "lr_bests"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 222
        },
        "executionInfo": {
          "elapsed": 19143,
          "status": "ok",
          "timestamp": 1633405432364,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "9NRPya-i8k5L",
        "outputId": "f30af8f4-9128-4429-862b-a420ef7537b9"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_reverse], [results[i] for i in lr_best_subset_reverse], 1)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 222
        },
        "executionInfo": {
          "elapsed": 19212,
          "status": "ok",
          "timestamp": 1633405451985,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "p5BCHvlK8k5S",
        "outputId": "523ba66f-0bbf-402a-8dfa-4dba22ef64f0"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_reverse], [results[i] for i in lr_best_subset_reverse], 2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 222
        },
        "executionInfo": {
          "elapsed": 19544,
          "status": "ok",
          "timestamp": 1633405472047,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "tlophinT8k5V",
        "outputId": "8fdbfc7a-bc0c-4f95-9579-6379cf006bf4"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_reverse], [results[i] for i in lr_best_subset_reverse], 3)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "azE5Koyd8n3t"
      },
      "source": [
        "##### Fixed"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 337
        },
        "executionInfo": {
          "elapsed": 566,
          "status": "ok",
          "timestamp": 1633405472862,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "S7q_0cjulG2Y",
        "outputId": "517de322-b7db-48ed-935b-388c4b095370"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7f4c890a2410>"
            ]
          },
          "execution_count": 289,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 500x500 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "indices = [i for i, ex in enumerate(experiments) if (ex.metadata[\"p_q_mode\"] == \"fixed\")]\n",
        "plt.figure(figsize=(5,5))\n",
        "WINDOW_SIZE = 25\n",
        "for i in indices:\n",
        "  plt.plot(np.arange(0, experiments[i].num_steps, WINDOW_SIZE), np.reshape([m[\"loss\"] for m in results[i].all_metrics], [-1, WINDOW_SIZE]).mean(-1), label=experiments[i].name)\n",
        "plt.legend()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "XucKpPXM8k5Y"
      },
      "outputs": [],
      "source": [
        "eval_results_fixed = experiment_util.evaluate_all([experiments[i] for i in indices], [results[i] for i in indices],\n",
        "                                    seed=765987, num_pairs=1, samples_per_pair=100_000, loop_size=500)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 342
        },
        "executionInfo": {
          "elapsed": 253,
          "status": "ok",
          "timestamp": 1633405521487,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "QKEayIaf8k5Y",
        "outputId": "c2634fb7-addc-4ae8-9def-36d1fdf125cd"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: &#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, &#x27;ICDF&#x27;: &#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, &#x27;ICDF (permuted)&#x27;: &#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;, &#x27;Gumbel-max&#x27;: &#x27;average: 7.0582, inner st.dev.: +/- 11.06, errorbars: +/- 0.0000&#x27;, &#x27;G2 relaxed fixed lr=1e-05&#x27;: &#x27;average: 3.1299, inner st.dev.: +/- 3.782, er...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: &#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;</li><li>&#x27;ICDF&#x27;: &#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;</li><li>&#x27;ICDF (permuted)&#x27;: &#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;</li><li>&#x27;Gumbel-max&#x27;: &#x27;average: 7.0582, inner st.dev.: +/- 11.06, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G2 relaxed fixed lr=1e-05&#x27;: &#x27;average: 3.1299, inner st.dev.: +/- 3.782, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G1 relaxed fixed lr=1e-05&#x27;: &#x27;average: 5.2283, inner st.dev.: +/- 6.521, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G2 relaxed fixed lr=0.0001&#x27;: &#x27;average: 3.1479, inner st.dev.: +/- 3.794, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G1 relaxed fixed lr=0.0001&#x27;: &#x27;average: 4.8208, inner st.dev.: +/- 5.569, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G2 relaxed fixed lr=0.0003&#x27;: &#x27;average: 3.1748, inner st.dev.: +/- 3.809, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G1 relaxed fixed lr=0.0003&#x27;: &#x27;average: 4.9635, inner st.dev.: +/- 5.563, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G2 relaxed fixed lr=0.001&#x27;: &#x27;average: 3.1618, inner st.dev.: +/- 3.789, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G1 relaxed fixed lr=0.001&#x27;: &#x27;average: 5.3675, inner st.dev.: +/- 6.529, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G2 relaxed fixed lr=0.003&#x27;: &#x27;average: 3.6700, inner st.dev.: +/- 5.817, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G1 relaxed fixed lr=0.003&#x27;: &#x27;average: 5.3996, inner st.dev.: +/- 6.936, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G2 relaxed fixed lr=0.01&#x27;: &#x27;average: 7.3154, inner st.dev.: +/- 11.39, errorbars: +/- 0.0000&#x27;</li><li>&#x27;G1 relaxed fixed lr=0.01&#x27;: &#x27;average: 6.3977, inner st.dev.: +/- 9.596, errorbars: +/- 0.0000&#x27;</li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'Independent': 'average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000',\n",
              " 'ICDF': 'average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000',\n",
              " 'ICDF (permuted)': 'average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000',\n",
              " 'Gumbel-max': 'average: 7.0582, inner st.dev.: +/- 11.06, errorbars: +/- 0.0000',\n",
              " 'G2 relaxed fixed lr=1e-05':\n",
              "   'average: 3.1299, inner st.dev.: +/- 3.782, errorbars: +/- 0.0000',\n",
              " 'G1 relaxed fixed lr=1e-05':\n",
              "   'average: 5.2283, inner st.dev.: +/- 6.521, errorbars: +/- 0.0000',\n",
              " 'G2 relaxed fixed lr=0.0001':\n",
              "   'average: 3.1479, inner st.dev.: +/- 3.794, errorbars: +/- 0.0000',\n",
              " 'G1 relaxed fixed lr=0.0001':\n",
              "   'average: 4.8208, inner st.dev.: +/- 5.569, errorbars: +/- 0.0000',\n",
              " 'G2 relaxed fixed lr=0.0003':\n",
              "   'average: 3.1748, inner st.dev.: +/- 3.809, errorbars: +/- 0.0000',\n",
              " 'G1 relaxed fixed lr=0.0003':\n",
              "   'average: 4.9635, inner st.dev.: +/- 5.563, errorbars: +/- 0.0000',\n",
              " 'G2 relaxed fixed lr=0.001':\n",
              "   'average: 3.1618, inner st.dev.: +/- 3.789, errorbars: +/- 0.0000',\n",
              " 'G1 relaxed fixed lr=0.001':\n",
              "   'average: 5.3675, inner st.dev.: +/- 6.529, errorbars: +/- 0.0000',\n",
              " 'G2 relaxed fixed lr=0.003':\n",
              "   'average: 3.6700, inner st.dev.: +/- 5.817, errorbars: +/- 0.0000',\n",
              " 'G1 relaxed fixed lr=0.003':\n",
              "   'average: 5.3996, inner st.dev.: +/- 6.936, errorbars: +/- 0.0000',\n",
              " 'G2 relaxed fixed lr=0.01':\n",
              "   'average: 7.3154, inner st.dev.: +/- 11.39, errorbars: +/- 0.0000',\n",
              " 'G1 relaxed fixed lr=0.01':\n",
              "   'average: 6.3977, inner st.dev.: +/- 9.596, errorbars: +/- 0.0000'}"
            ]
          },
          "execution_count": 291,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "{k:summary for k, (summary, _, _, _) in eval_results_fixed.items()}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 342
        },
        "executionInfo": {
          "elapsed": 71,
          "status": "ok",
          "timestamp": 1633405522078,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "r_RB8WGgduFA",
        "outputId": "030a7504-2c4e-4b2b-90fe-d02bd9e31a67"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: DeviceArray(0.03916968, dtype=float32), &#x27;ICDF&#x27;: DeviceArray(0.0109747, dtype=float32), &#x27;ICDF (permuted)&#x27;: DeviceArray(0.02664398, dtype=float32), &#x27;Gumbel-max&#x27;: DeviceArray(0.0349714, dtype=float32), &#x27;G2 relaxed fixed lr=1e-05&#x27;: DeviceArray(0.01196018, dtype=float32), &#x27;G1 relaxed fixed lr=1e-05&#x27;: DeviceArray(0.02062217, dtype=float32), &#x27;G2 relaxed fixed lr=0.0001&#x27;: DeviceArray(0.01199626, dtype=float32), &#x27;G...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: DeviceArray(0.03916968, dtype=float32)</li><li>&#x27;ICDF&#x27;: DeviceArray(0.0109747, dtype=float32)</li><li>&#x27;ICDF (permuted)&#x27;: DeviceArray(0.02664398, dtype=float32)</li><li>&#x27;Gumbel-max&#x27;: DeviceArray(0.0349714, dtype=float32)</li><li>&#x27;G2 relaxed fixed lr=1e-05&#x27;: DeviceArray(0.01196018, dtype=float32)</li><li>&#x27;G1 relaxed fixed lr=1e-05&#x27;: DeviceArray(0.02062217, dtype=float32)</li><li>&#x27;G2 relaxed fixed lr=0.0001&#x27;: DeviceArray(0.01199626, dtype=float32)</li><li>&#x27;G1 relaxed fixed lr=0.0001&#x27;: DeviceArray(0.01761122, dtype=float32)</li><li>&#x27;G2 relaxed fixed lr=0.0003&#x27;: DeviceArray(0.01204557, dtype=float32)</li><li>&#x27;G1 relaxed fixed lr=0.0003&#x27;: DeviceArray(0.01759123, dtype=float32)</li><li>&#x27;G2 relaxed fixed lr=0.001&#x27;: DeviceArray(0.01198215, dtype=float32)</li><li>&#x27;G1 relaxed fixed lr=0.001&#x27;: DeviceArray(0.02064614, dtype=float32)</li><li>&#x27;G2 relaxed fixed lr=0.003&#x27;: DeviceArray(0.0183947, dtype=float32)</li><li>&#x27;G1 relaxed fixed lr=0.003&#x27;: DeviceArray(0.02193438, dtype=float32)</li><li>&#x27;G2 relaxed fixed lr=0.01&#x27;: DeviceArray(0.03602124, dtype=float32)</li><li>&#x27;G1 relaxed fixed lr=0.01&#x27;: DeviceArray(0.03034677, dtype=float32)</li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'Independent': DeviceArray(0.03916968, dtype=float32),\n",
              " 'ICDF': DeviceArray(0.0109747, dtype=float32),\n",
              " 'ICDF (permuted)': DeviceArray(0.02664398, dtype=float32),\n",
              " 'Gumbel-max': DeviceArray(0.0349714, dtype=float32),\n",
              " 'G2 relaxed fixed lr=1e-05': DeviceArray(0.01196018, dtype=float32),\n",
              " 'G1 relaxed fixed lr=1e-05': DeviceArray(0.02062217, dtype=float32),\n",
              " 'G2 relaxed fixed lr=0.0001': DeviceArray(0.01199626, dtype=float32),\n",
              " 'G1 relaxed fixed lr=0.0001': DeviceArray(0.01761122, dtype=float32),\n",
              " 'G2 relaxed fixed lr=0.0003': DeviceArray(0.01204557, dtype=float32),\n",
              " 'G1 relaxed fixed lr=0.0003': DeviceArray(0.01759123, dtype=float32),\n",
              " 'G2 relaxed fixed lr=0.001': DeviceArray(0.01198215, dtype=float32),\n",
              " 'G1 relaxed fixed lr=0.001': DeviceArray(0.02064614, dtype=float32),\n",
              " 'G2 relaxed fixed lr=0.003': DeviceArray(0.0183947, dtype=float32),\n",
              " 'G1 relaxed fixed lr=0.003': DeviceArray(0.02193438, dtype=float32),\n",
              " 'G2 relaxed fixed lr=0.01': DeviceArray(0.03602124, dtype=float32),\n",
              " 'G1 relaxed fixed lr=0.01': DeviceArray(0.03034677, dtype=float32)}"
            ]
          },
          "execution_count": 292,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "{k:(isd/np.sqrt(100_000)) for k, (_, _, _, isd) in eval_results_fixed.items()}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 98
        },
        "executionInfo": {
          "elapsed": 73,
          "status": "ok",
          "timestamp": 1633405522675,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "eBLezRn4m9a5",
        "outputId": "970a194f-c106-44c2-ef1b-2e256c723720"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;G2 relaxed fixed&#x27;: (&#x27;G2 relaxed fixed lr=1e-05&#x27;, 4, DeviceArray(3.12986, dtype=float32)), &#x27;G1 relaxed fixed&#x27;: (&#x27;G1 relaxed fixed lr=0.0001&#x27;, 11, DeviceArray(4.82084, dtype=float32))}</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;G2 relaxed fixed&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;G2 relaxed fixed lr=1e-05&#x27;, 4, DeviceArray(3.12986, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;G2 relaxed fixed lr=1e-05&#x27;,</li><li>4,</li><li>DeviceArray(3.12986, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed fixed&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;G1 relaxed fixed lr=0.0001&#x27;, 11, DeviceArray(4.82084, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;G1 relaxed fixed lr=0.0001&#x27;,</li><li>11,</li><li>DeviceArray(4.82084, dtype=float32),</li></ul>)</details></li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'G2 relaxed fixed': ('G2 relaxed fixed lr=1e-05',\n",
              "                      4,\n",
              "                      DeviceArray(3.12986, dtype=float32)),\n",
              " 'G1 relaxed fixed': ('G1 relaxed fixed lr=0.0001',\n",
              "                      11,\n",
              "                      DeviceArray(4.82084, dtype=float32))}"
            ]
          },
          "execution_count": 293,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "lr_bests = {}\n",
        "for i in indices:\n",
        "  ex = experiments[i]\n",
        "  shortname = ex.name.split(\" lr=\")[0]\n",
        "  if shortname not in lr_bests or eval_results_fixed[ex.name][1] < lr_bests[shortname][2]:\n",
        "    lr_bests[shortname] = (ex.name, i, eval_results_fixed[ex.name][1])\n",
        "\n",
        "lr_best_subset = [i for _, i, _ in lr_bests.values()]\n",
        "lr_best_subset_fixed = lr_best_subset\n",
        "lr_bests"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 222
        },
        "executionInfo": {
          "elapsed": 19331,
          "status": "ok",
          "timestamp": 1633405542466,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "-3iRZtViXOOT",
        "outputId": "55e1ca70-d5bf-46b3-c125-fa2866c27f0a"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 3200x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "experiment_util.compute_and_visualize_coupling_experiments([experiments[i] for i in lr_best_subset_fixed], [results[i] for i in lr_best_subset_fixed], 1)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hADsJQA9PH21"
      },
      "source": [
        "#### Extract best learning rates"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "executionInfo": {
          "elapsed": 121,
          "status": "ok",
          "timestamp": 1633405542939,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "UdUrcZ7KPLZe",
        "outputId": "61dc2a06-f38a-4d85-b2c3-566d14bf62bd"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "4 {'lr': 1e-05, 'p_q_mode': 'fixed', 'is_gadget_2': True}\n",
            "11 {'lr': 0.0001, 'p_q_mode': 'fixed', 'is_gadget_2': False}\n",
            "20 {'lr': 0.001, 'p_q_mode': 'independent', 'is_gadget_2': True}\n",
            "9 {'lr': 0.0001, 'p_q_mode': 'independent', 'is_gadget_2': False}\n",
            "18 {'lr': 0.001, 'p_q_mode': 'reverse', 'is_gadget_2': True}\n",
            "7 {'lr': 0.0001, 'p_q_mode': 'reverse', 'is_gadget_2': False}\n"
          ]
        }
      ],
      "source": [
        "best_lr_map = {}\n",
        "for i in (lr_best_subset_fixed + lr_best_subset_independent + lr_best_subset_reverse):\n",
        "  print(i, experiments[i].metadata)\n",
        "  best_lr_map[experiments[i].metadata[\"is_gadget_2\"], experiments[i].metadata[\"p_q_mode\"]] = experiments[i].metadata[\"lr\"]"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VBKqSEr0P3Zd"
      },
      "source": [
        "### Phase 2: Retrain for multiple seeds with tuned learning rate"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "J83ASERgQQzH"
      },
      "outputs": [],
      "source": [
        "S_dim = 10\n",
        "experiments = []\n",
        "for p_q_mode in [\"reverse\", \"independent\", \"fixed\"]:\n",
        "  for is_gadget_2 in [True, False]:\n",
        "    for train_seed in [1, 2, 3, 4, 5]:\n",
        "      lr = best_lr_map[is_gadget_2, p_q_mode]\n",
        "      ex = experiment_util.CouplingExperimentConfig(\n",
        "        name=f\"G{2 if is_gadget_2 else 1} relaxed {p_q_mode} lr={lr} seed={train_seed}\",\n",
        "        model=(\n",
        "            gadget_2.GadgetTwoMLPPredictor(\n",
        "                S_dim=10, Z_dim=20, hidden_features=[1024, 1024],\n",
        "                relaxation_temperature=1.0, learn_prior=False)\n",
        "            if is_gadget_2 else\n",
        "            gadget_1.GadgetOneMLPPredictor(\n",
        "                S_dim=10, hidden_features=[1024, 1024],\n",
        "                relaxation_temperature=1.0)\n",
        "        ),\n",
        "        logit_pair_distribution_fn=functools.partial(\n",
        "            softmax_uniform_logit_pair_distribution_fn,\n",
        "            dim=S_dim,\n",
        "            p_q_mode=p_q_mode),\n",
        "        coupling_loss_matrix_fn=squared_loss_matrix_fn,\n",
        "        inner_num_samples=16,\n",
        "        batch_size=64,\n",
        "        use_transpose=(not is_gadget_2),\n",
        "        tx=optax.adam(lr),\n",
        "        num_steps=50_000,\n",
        "        print_every=2_500,\n",
        "        metadata=dict(lr=lr, p_q_mode=p_q_mode, is_gadget_2=is_gadget_2, train_seed=train_seed),\n",
        "      )\n",
        "      experiments.append(ex)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "executionInfo": {
          "elapsed": 2114849,
          "status": "ok",
          "timestamp": 1633407658442,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "W3iVMIfDQQzI",
        "outputId": "330d5acc-42c3-490c-d062-f941e9b74788"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "====================\n",
            "Training: G2 relaxed reverse lr=0.001 seed=1\n",
            "0 [0.1716514413788153/s]: {'loss': 17.07481575012207}\n",
            "1 [44.345689454653105/s]: {'loss': 16.428869247436523}\n",
            "2 [45.09470922794078/s]: {'loss': 18.78879737854004}\n",
            "4 [81.11675401783124/s]: {'loss': 16.432809829711914}\n",
            "8 [144.78844261870654/s]: {'loss': 13.15888786315918}\n",
            "16 [230.50375764237137/s]: {'loss': 15.356531143188477}\n",
            "32 [325.1303934963131/s]: {'loss': 14.17373275756836}\n",
            "64 [408.8775265872375/s]: {'loss': 14.87680435180664}\n",
            "128 [473.4244596196174/s]: {'loss': 12.847692489624023}\n",
            "256 [520.0972554155918/s]: {'loss': 12.418379783630371}\n",
            "512 [536.8336020646565/s]: {'loss': 14.044510841369629}\n",
            "1024 [552.4308164848154/s]: {'loss': 12.196905136108398}\n",
            "2048 [556.5708052221901/s]: {'loss': 14.646544456481934}\n",
            "2500 [547.1313386212175/s]: {'loss': 12.249279975891113}\n",
            "4096 [560.4782678807987/s]: {'loss': 15.04683780670166}\n",
            "5000 [552.0600880727586/s]: {'loss': 13.801310539245605}\n",
            "7500 [525.7855687461813/s]: {'loss': 12.821038246154785}\n",
            "8192 [522.0955006864237/s]: {'loss': 10.940735816955566}\n",
            "10000 [521.573789713912/s]: {'loss': 12.842534065246582}\n",
            "12500 [522.868125461902/s]: {'loss': 12.666153907775879}\n",
            "15000 [529.5427052181502/s]: {'loss': 15.590840339660645}\n",
            "16384 [523.8452958423775/s]: {'loss': 9.743982315063477}\n",
            "17500 [506.51624661165965/s]: {'loss': 10.25076675415039}\n",
            "20000 [515.9605007106305/s]: {'loss': 11.461189270019531}\n",
            "22500 [534.2850884324223/s]: {'loss': 13.578984260559082}\n",
            "25000 [534.624973869772/s]: {'loss': 12.006131172180176}\n",
            "27500 [530.5988632901435/s]: {'loss': 10.89756965637207}\n",
            "30000 [522.8076700821623/s]: {'loss': 12.026751518249512}\n",
            "32500 [522.7215081842734/s]: {'loss': 9.578460693359375}\n",
            "32768 [499.5875436610529/s]: {'loss': 10.152931213378906}\n",
            "35000 [528.94054993918/s]: {'loss': 11.42004680633545}\n",
            "37500 [523.7504748876229/s]: {'loss': 12.518279075622559}\n",
            "40000 [524.7689244808405/s]: {'loss': 11.854588508605957}\n",
            "42500 [512.9232367811261/s]: {'loss': 9.94267463684082}\n",
            "45000 [537.2008581885353/s]: {'loss': 10.65716552734375}\n",
            "47500 [541.7719562166319/s]: {'loss': 11.2915620803833}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.001 seed=2\n",
            "0 [0.16880837331878/s]: {'loss': 16.328441619873047}\n",
            "1 [43.554558670820356/s]: {'loss': 17.90746307373047}\n",
            "2 [44.19010693778644/s]: {'loss': 17.372957229614258}\n",
            "4 [81.16541527982042/s]: {'loss': 18.64141273498535}\n",
            "8 [138.99354624911976/s]: {'loss': 13.534395217895508}\n",
            "16 [214.67966730646194/s]: {'loss': 13.644941329956055}\n",
            "32 [294.07529261227944/s]: {'loss': 10.980949401855469}\n",
            "64 [375.29773229315214/s]: {'loss': 12.040955543518066}\n",
            "128 [423.7553530722941/s]: {'loss': 15.506745338439941}\n",
            "256 [439.4957861293869/s]: {'loss': 16.367616653442383}\n",
            "512 [491.7737809642366/s]: {'loss': 15.2011079788208}\n",
            "1024 [511.93714150717824/s]: {'loss': 14.894168853759766}\n",
            "2048 [513.7688462793103/s]: {'loss': 10.139585494995117}\n",
            "2500 [512.2855574050456/s]: {'loss': 14.336433410644531}\n",
            "4096 [517.8637396934689/s]: {'loss': 11.201704978942871}\n",
            "5000 [517.8803053644474/s]: {'loss': 11.954001426696777}\n",
            "7500 [515.4022082290275/s]: {'loss': 10.124055862426758}\n",
            "8192 [509.8070307481721/s]: {'loss': 13.738401412963867}\n",
            "10000 [505.9611456244775/s]: {'loss': 10.979286193847656}\n",
            "12500 [498.7586400044597/s]: {'loss': 10.17270278930664}\n",
            "15000 [524.6527385838635/s]: {'loss': 12.066802024841309}\n",
            "16384 [525.0190055083921/s]: {'loss': 11.963431358337402}\n",
            "17500 [520.3235633875588/s]: {'loss': 11.968957901000977}\n",
            "20000 [524.7254111026953/s]: {'loss': 11.592077255249023}\n",
            "22500 [516.8559474322896/s]: {'loss': 14.158180236816406}\n",
            "25000 [521.0183234602093/s]: {'loss': 9.479779243469238}\n",
            "27500 [516.3018939348058/s]: {'loss': 11.832869529724121}\n",
            "30000 [536.2650234740223/s]: {'loss': 11.012862205505371}\n",
            "32500 [524.8999546120845/s]: {'loss': 10.502386093139648}\n",
            "32768 [489.00909567072523/s]: {'loss': 9.627998352050781}\n",
            "35000 [522.5151181433292/s]: {'loss': 11.566696166992188}\n",
            "37500 [534.4364947645585/s]: {'loss': 12.621354103088379}\n",
            "40000 [514.0782012910787/s]: {'loss': 10.929986000061035}\n",
            "42500 [518.4159543269343/s]: {'loss': 10.775949478149414}\n",
            "45000 [530.7910126307968/s]: {'loss': 10.205533027648926}\n",
            "47500 [533.0268689104124/s]: {'loss': 13.222827911376953}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.001 seed=3\n",
            "0 [0.17579298937740764/s]: {'loss': 19.27050018310547}\n",
            "1 [43.99265793310328/s]: {'loss': 17.03543472290039}\n",
            "2 [43.972825631133105/s]: {'loss': 17.38404655456543}\n",
            "4 [81.41039003891655/s]: {'loss': 15.026578903198242}\n",
            "8 [140.79452169753526/s]: {'loss': 15.881710052490234}\n",
            "16 [221.9296532931201/s]: {'loss': 17.016782760620117}\n",
            "32 [318.3094545816752/s]: {'loss': 14.41006088256836}\n",
            "64 [404.78355987562543/s]: {'loss': 15.654409408569336}\n",
            "128 [464.16181960599874/s]: {'loss': 14.85769271850586}\n",
            "256 [501.22621007081403/s]: {'loss': 14.7285795211792}\n",
            "512 [505.4030047172875/s]: {'loss': 13.627495765686035}\n",
            "1024 [523.971774846821/s]: {'loss': 13.419164657592773}\n",
            "2048 [526.8858973591468/s]: {'loss': 14.20595645904541}\n",
            "2500 [531.395115760063/s]: {'loss': 13.936197280883789}\n",
            "4096 [545.5274676423305/s]: {'loss': 10.387219429016113}\n",
            "5000 [536.6530593527555/s]: {'loss': 10.3284330368042}\n",
            "7500 [534.4103737716842/s]: {'loss': 12.45877456665039}\n",
            "8192 [535.3918687519426/s]: {'loss': 11.121784210205078}\n",
            "10000 [531.0205505111894/s]: {'loss': 13.772359848022461}\n",
            "12500 [531.4779129277739/s]: {'loss': 10.548120498657227}\n",
            "15000 [501.2299679092668/s]: {'loss': 12.46494197845459}\n",
            "16384 [529.4925888673248/s]: {'loss': 12.338610649108887}\n",
            "17500 [527.0903518966711/s]: {'loss': 9.364514350891113}\n",
            "20000 [535.104659089297/s]: {'loss': 11.688509941101074}\n",
            "22500 [544.2621204773526/s]: {'loss': 11.751752853393555}\n",
            "25000 [553.4325027275094/s]: {'loss': 10.724342346191406}\n",
            "27500 [544.1489750631772/s]: {'loss': 13.797600746154785}\n",
            "30000 [534.7790821214253/s]: {'loss': 11.574640274047852}\n",
            "32500 [524.0483526883156/s]: {'loss': 11.606358528137207}\n",
            "32768 [512.9413263594909/s]: {'loss': 12.299059867858887}\n",
            "35000 [517.4205862689819/s]: {'loss': 11.530121803283691}\n",
            "37500 [535.7528429629864/s]: {'loss': 10.931572914123535}\n",
            "40000 [495.5118902420295/s]: {'loss': 11.940147399902344}\n",
            "42500 [486.779000710734/s]: {'loss': 12.737788200378418}\n",
            "45000 [514.9939555829893/s]: {'loss': 13.16501235961914}\n",
            "47500 [512.9485038985663/s]: {'loss': 11.020816802978516}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.001 seed=4\n",
            "0 [0.17290732781240759/s]: {'loss': 18.237092971801758}\n",
            "1 [43.46744323422424/s]: {'loss': 19.283369064331055}\n",
            "2 [44.20780589605489/s]: {'loss': 17.461631774902344}\n",
            "4 [82.1864639260101/s]: {'loss': 16.535024642944336}\n",
            "8 [141.04427070197562/s]: {'loss': 15.164134979248047}\n",
            "16 [222.30311382006096/s]: {'loss': 14.000638961791992}\n",
            "32 [308.4004540378579/s]: {'loss': 15.420422554016113}\n",
            "64 [386.6909675504836/s]: {'loss': 14.273147583007812}\n",
            "128 [444.62095604067974/s]: {'loss': 12.432205200195312}\n",
            "256 [471.0240981930961/s]: {'loss': 15.634074211120605}\n",
            "512 [509.93439261186705/s]: {'loss': 13.261346817016602}\n",
            "1024 [511.27897092984915/s]: {'loss': 16.786897659301758}\n",
            "2048 [508.6598724823217/s]: {'loss': 13.784003257751465}\n",
            "2500 [502.6278798046676/s]: {'loss': 14.075346946716309}\n",
            "4096 [525.9629828356108/s]: {'loss': 10.877594947814941}\n",
            "5000 [511.32362699929496/s]: {'loss': 10.168521881103516}\n",
            "7500 [542.0080031489493/s]: {'loss': 11.553354263305664}\n",
            "8192 [538.6514883232973/s]: {'loss': 13.546651840209961}\n",
            "10000 [528.103864420245/s]: {'loss': 11.713709831237793}\n",
            "12500 [549.6319986447063/s]: {'loss': 12.959431648254395}\n",
            "15000 [553.1653907417428/s]: {'loss': 10.939845085144043}\n",
            "16384 [532.2233286962157/s]: {'loss': 10.427310943603516}\n",
            "17500 [526.6201581330944/s]: {'loss': 11.100809097290039}\n",
            "20000 [519.1701504494074/s]: {'loss': 11.872190475463867}\n",
            "22500 [528.2382980524104/s]: {'loss': 13.04621410369873}\n",
            "25000 [535.1389591610119/s]: {'loss': 11.102374076843262}\n",
            "27500 [548.0055715349168/s]: {'loss': 11.01821231842041}\n",
            "30000 [516.3930474353278/s]: {'loss': 11.73696517944336}\n",
            "32500 [511.6174111010248/s]: {'loss': 12.259941101074219}\n",
            "32768 [499.4539121702831/s]: {'loss': 10.29414176940918}\n",
            "35000 [513.5417027159926/s]: {'loss': 10.32314395904541}\n",
            "37500 [520.308343587817/s]: {'loss': 13.762587547302246}\n",
            "40000 [526.5017291704702/s]: {'loss': 14.19565486907959}\n",
            "42500 [521.0222585346179/s]: {'loss': 13.936058044433594}\n",
            "45000 [518.1562426556615/s]: {'loss': 9.998604774475098}\n",
            "47500 [524.3003210575448/s]: {'loss': 13.52744197845459}\n",
            "====================\n",
            "Training: G2 relaxed reverse lr=0.001 seed=5\n",
            "0 [0.16751068252500576/s]: {'loss': 20.371482849121094}\n",
            "1 [44.207339952359874/s]: {'loss': 16.5762996673584}\n",
            "2 [44.71730137745746/s]: {'loss': 17.713520050048828}\n",
            "4 [83.12795306801966/s]: {'loss': 15.253883361816406}\n",
            "8 [143.66883889807067/s]: {'loss': 13.545475006103516}\n",
            "16 [227.37514314949212/s]: {'loss': 12.985149383544922}\n",
            "32 [320.31188815861697/s]: {'loss': 16.419897079467773}\n",
            "64 [405.80916185172083/s]: {'loss': 14.821235656738281}\n",
            "128 [464.61090687547164/s]: {'loss': 14.558632850646973}\n",
            "256 [465.6877459110244/s]: {'loss': 11.418825149536133}\n",
            "512 [509.84262492485846/s]: {'loss': 12.787396430969238}\n",
            "1024 [533.4579812007728/s]: {'loss': 12.27993392944336}\n",
            "2048 [542.5774705464726/s]: {'loss': 15.001105308532715}\n",
            "2500 [543.6944018409306/s]: {'loss': 11.913491249084473}\n",
            "4096 [544.7350179969573/s]: {'loss': 10.894073486328125}\n",
            "5000 [529.3049058882636/s]: {'loss': 11.443439483642578}\n",
            "7500 [519.9681049837947/s]: {'loss': 13.410043716430664}\n",
            "8192 [514.0653790730856/s]: {'loss': 13.766169548034668}\n",
            "10000 [502.60336144300743/s]: {'loss': 10.48194408416748}\n",
            "12500 [512.7264292026242/s]: {'loss': 11.954140663146973}\n",
            "15000 [536.2610193396433/s]: {'loss': 11.462613105773926}\n",
            "16384 [519.9397502551593/s]: {'loss': 9.906475067138672}\n",
            "17500 [494.2992916108656/s]: {'loss': 11.968327522277832}\n",
            "20000 [527.9389353101909/s]: {'loss': 15.861897468566895}\n",
            "22500 [520.0534646639736/s]: {'loss': 12.28378677368164}\n",
            "25000 [510.9936817786379/s]: {'loss': 12.364665985107422}\n",
            "27500 [509.02071270453223/s]: {'loss': 12.220536231994629}\n",
            "30000 [517.674296719965/s]: {'loss': 12.411774635314941}\n",
            "32500 [505.52157319060257/s]: {'loss': 11.48854923248291}\n",
            "32768 [496.0098842483912/s]: {'loss': 11.04912281036377}\n",
            "35000 [518.7403600384774/s]: {'loss': 9.052836418151855}\n",
            "37500 [517.5099905255896/s]: {'loss': 13.180742263793945}\n",
            "40000 [521.711371876576/s]: {'loss': 11.27422046661377}\n",
            "42500 [541.7786743675471/s]: {'loss': 13.054666519165039}\n",
            "45000 [500.66349219203/s]: {'loss': 11.715123176574707}\n",
            "47500 [538.4904707703805/s]: {'loss': 11.370292663574219}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0001 seed=1\n",
            "0 [0.5129678260154902/s]: {'loss': 18.605426788330078}\n",
            "1 [45.18166149603585/s]: {'loss': 17.939970016479492}\n",
            "2 [46.10037150205535/s]: {'loss': 20.195865631103516}\n",
            "4 [87.40318412936567/s]: {'loss': 19.383529663085938}\n",
            "8 [162.22252733970856/s]: {'loss': 17.360815048217773}\n",
            "16 [278.96238038625575/s]: {'loss': 18.82417106628418}\n",
            "32 [435.80297293962553/s]: {'loss': 18.3088321685791}\n",
            "64 [604.6388323272367/s]: {'loss': 19.23133659362793}\n",
            "128 [741.0103794002032/s]: {'loss': 17.46282958984375}\n",
            "256 [820.1811737674464/s]: {'loss': 15.913362503051758}\n",
            "512 [885.3682244593543/s]: {'loss': 18.1653995513916}\n",
            "1024 [938.5744346548358/s]: {'loss': 16.64040184020996}\n",
            "2048 [986.2949418644171/s]: {'loss': 18.63804817199707}\n",
            "2500 [901.05299259367/s]: {'loss': 17.641088485717773}\n",
            "4096 [962.0749989472536/s]: {'loss': 20.035707473754883}\n",
            "5000 [1003.3712929465659/s]: {'loss': 19.112184524536133}\n",
            "7500 [955.7107347565844/s]: {'loss': 18.558744430541992}\n",
            "8192 [939.453761866337/s]: {'loss': 16.658754348754883}\n",
            "10000 [971.9791507677984/s]: {'loss': 18.525022506713867}\n",
            "12500 [1014.0706244887704/s]: {'loss': 17.907442092895508}\n",
            "15000 [962.1372083472039/s]: {'loss': 20.195819854736328}\n",
            "16384 [927.4347005509248/s]: {'loss': 15.455230712890625}\n",
            "17500 [927.3205312193178/s]: {'loss': 17.07402229309082}\n",
            "20000 [926.028287164359/s]: {'loss': 16.939735412597656}\n",
            "22500 [933.0541877882604/s]: {'loss': 19.098234176635742}\n",
            "25000 [942.8997555742153/s]: {'loss': 18.2192440032959}\n",
            "27500 [984.5806225291024/s]: {'loss': 17.316028594970703}\n",
            "30000 [991.1750693819524/s]: {'loss': 18.086809158325195}\n",
            "32500 [987.1104114761225/s]: {'loss': 16.17266273498535}\n",
            "32768 [915.4922868300708/s]: {'loss': 15.75811767578125}\n",
            "35000 [964.7031241579045/s]: {'loss': 17.21575164794922}\n",
            "37500 [976.3724744187537/s]: {'loss': 18.25246810913086}\n",
            "40000 [950.973155479326/s]: {'loss': 17.106115341186523}\n",
            "42500 [977.226631461099/s]: {'loss': 16.70756721496582}\n",
            "45000 [975.6742085422484/s]: {'loss': 16.536252975463867}\n",
            "47500 [968.9404330096712/s]: {'loss': 17.61423683166504}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0001 seed=2\n",
            "0 [0.5208721853177096/s]: {'loss': 18.705949783325195}\n",
            "1 [45.42190359645228/s]: {'loss': 20.34322166442871}\n",
            "2 [46.32747194486171/s]: {'loss': 19.01891326904297}\n",
            "4 [88.28905518192248/s]: {'loss': 20.864967346191406}\n",
            "8 [162.83816364165776/s]: {'loss': 18.596115112304688}\n",
            "16 [277.8996049460424/s]: {'loss': 17.693286895751953}\n",
            "32 [428.6955832939403/s]: {'loss': 15.397507667541504}\n",
            "64 [591.6297997452184/s]: {'loss': 16.563508987426758}\n",
            "128 [769.1736658719971/s]: {'loss': 19.016265869140625}\n",
            "256 [872.5791678111525/s]: {'loss': 19.107723236083984}\n",
            "512 [924.0892640449729/s]: {'loss': 17.61566925048828}\n",
            "1024 [962.4296202015404/s]: {'loss': 18.28390121459961}\n",
            "2048 [980.3394890144078/s]: {'loss': 16.379638671875}\n",
            "2500 [952.4535261860922/s]: {'loss': 18.98833465576172}\n",
            "4096 [982.2152369119093/s]: {'loss': 16.80670738220215}\n",
            "5000 [993.3122905685062/s]: {'loss': 17.25841522216797}\n",
            "7500 [981.1611989491622/s]: {'loss': 16.260217666625977}\n",
            "8192 [969.9433123913915/s]: {'loss': 18.808425903320312}\n",
            "10000 [972.3888246539681/s]: {'loss': 16.261587142944336}\n",
            "12500 [923.8482623352116/s]: {'loss': 16.69879722595215}\n",
            "15000 [906.6051666610323/s]: {'loss': 17.31651496887207}\n",
            "16384 [960.2015535804287/s]: {'loss': 17.417804718017578}\n",
            "17500 [943.0453394150143/s]: {'loss': 17.536609649658203}\n",
            "20000 [961.9015520856018/s]: {'loss': 16.186439514160156}\n",
            "22500 [961.7637422729696/s]: {'loss': 18.98513412475586}\n",
            "25000 [973.2386654686071/s]: {'loss': 16.2044677734375}\n",
            "27500 [980.9111775169937/s]: {'loss': 17.15058135986328}\n",
            "30000 [1007.2920352078046/s]: {'loss': 17.174152374267578}\n",
            "32500 [1007.3212585867072/s]: {'loss': 16.68521499633789}\n",
            "32768 [929.7593470273632/s]: {'loss': 15.88492202758789}\n",
            "35000 [1008.194794667395/s]: {'loss': 17.78505516052246}\n",
            "37500 [989.3823427536275/s]: {'loss': 18.731159210205078}\n",
            "40000 [970.8682849903439/s]: {'loss': 16.642536163330078}\n",
            "42500 [960.8669149619732/s]: {'loss': 16.93829345703125}\n",
            "45000 [938.0441894588472/s]: {'loss': 16.050094604492188}\n",
            "47500 [939.21864105943/s]: {'loss': 17.667055130004883}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0001 seed=3\n",
            "0 [0.47421825800171175/s]: {'loss': 21.051124572753906}\n",
            "1 [45.46276745648074/s]: {'loss': 18.776884078979492}\n",
            "2 [46.185654194287224/s]: {'loss': 19.69971466064453}\n",
            "4 [88.59209192294693/s]: {'loss': 18.519372940063477}\n",
            "8 [162.08930883233822/s]: {'loss': 20.248462677001953}\n",
            "16 [270.55661990001613/s]: {'loss': 20.446151733398438}\n",
            "32 [436.9578726673699/s]: {'loss': 19.019758224487305}\n",
            "64 [603.8961363851107/s]: {'loss': 19.408252716064453}\n",
            "128 [750.5136201348174/s]: {'loss': 18.24730682373047}\n",
            "256 [852.403358355879/s]: {'loss': 17.899316787719727}\n",
            "512 [906.0217885660235/s]: {'loss': 18.328628540039062}\n",
            "1024 [947.2937400500316/s]: {'loss': 18.321880340576172}\n",
            "2048 [975.8807466919209/s]: {'loss': 18.777273178100586}\n",
            "2500 [936.7392778932889/s]: {'loss': 18.6021728515625}\n",
            "4096 [954.9620459421409/s]: {'loss': 16.17733383178711}\n",
            "5000 [970.6228521839746/s]: {'loss': 15.980335235595703}\n",
            "7500 [974.1458052615111/s]: {'loss': 17.628602981567383}\n",
            "8192 [955.9635750421585/s]: {'loss': 16.564908981323242}\n",
            "10000 [984.4812604182354/s]: {'loss': 18.548704147338867}\n",
            "12500 [987.0090409499526/s]: {'loss': 15.764514923095703}\n",
            "15000 [1002.2962725979443/s]: {'loss': 17.891992568969727}\n",
            "16384 [1003.7193888860647/s]: {'loss': 17.05750274658203}\n",
            "17500 [989.935410737553/s]: {'loss': 14.952438354492188}\n",
            "20000 [1000.1136909026676/s]: {'loss': 17.3674373626709}\n",
            "22500 [969.9407680634097/s]: {'loss': 17.32367515563965}\n",
            "25000 [908.5577948175495/s]: {'loss': 16.558181762695312}\n",
            "27500 [960.1699812640782/s]: {'loss': 19.458059310913086}\n",
            "30000 [968.2051009307207/s]: {'loss': 17.58131217956543}\n",
            "32500 [937.6359462403792/s]: {'loss': 16.621564865112305}\n",
            "32768 [939.8780512685016/s]: {'loss': 18.348360061645508}\n",
            "35000 [992.340693139582/s]: {'loss': 16.828506469726562}\n",
            "37500 [987.4782518616877/s]: {'loss': 16.168262481689453}\n",
            "40000 [946.1882161769223/s]: {'loss': 17.807634353637695}\n",
            "42500 [954.7760336078658/s]: {'loss': 19.09151268005371}\n",
            "45000 [953.9408685045292/s]: {'loss': 18.929407119750977}\n",
            "47500 [989.3268941642247/s]: {'loss': 16.37307357788086}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0001 seed=4\n",
            "0 [0.5048418090418391/s]: {'loss': 19.272144317626953}\n",
            "1 [45.76286646372732/s]: {'loss': 20.324901580810547}\n",
            "2 [46.32593688907543/s]: {'loss': 19.899681091308594}\n",
            "4 [88.69794343113931/s]: {'loss': 20.507389068603516}\n",
            "8 [160.84149977470784/s]: {'loss': 20.414756774902344}\n",
            "16 [274.9281594126901/s]: {'loss': 18.30715560913086}\n",
            "32 [366.50481417765764/s]: {'loss': 18.64451026916504}\n",
            "64 [598.9884056160018/s]: {'loss': 17.6795711517334}\n",
            "128 [736.0324645056567/s]: {'loss': 16.49762725830078}\n",
            "256 [826.2552434422344/s]: {'loss': 19.08528709411621}\n",
            "512 [914.8092658211024/s]: {'loss': 16.436620712280273}\n",
            "1024 [975.4797934465429/s]: {'loss': 19.506742477416992}\n",
            "2048 [994.5601650959289/s]: {'loss': 18.500072479248047}\n",
            "2500 [978.8987655238933/s]: {'loss': 19.117673873901367}\n",
            "4096 [1007.8388808985428/s]: {'loss': 15.925119400024414}\n",
            "5000 [1012.1471015811984/s]: {'loss': 15.158407211303711}\n",
            "7500 [1029.5524447030002/s]: {'loss': 16.23915672302246}\n",
            "8192 [1009.0691913285208/s]: {'loss': 19.093109130859375}\n",
            "10000 [976.6637309105446/s]: {'loss': 17.240642547607422}\n",
            "12500 [1016.9919916109334/s]: {'loss': 17.20081329345703}\n",
            "15000 [1003.3557592847936/s]: {'loss': 16.072021484375}\n",
            "16384 [969.3417659205606/s]: {'loss': 16.172670364379883}\n",
            "17500 [966.9036181088252/s]: {'loss': 15.425946235656738}\n",
            "20000 [968.1816788429271/s]: {'loss': 17.48554801940918}\n",
            "22500 [951.9001627599528/s]: {'loss': 18.536420822143555}\n",
            "25000 [986.9245040063784/s]: {'loss': 16.728662490844727}\n",
            "27500 [1058.9551369841224/s]: {'loss': 16.60610008239746}\n",
            "30000 [1003.3277255668414/s]: {'loss': 16.67523956298828}\n",
            "32500 [993.9894774620097/s]: {'loss': 17.116409301757812}\n",
            "32768 [960.2114650639131/s]: {'loss': 16.25563621520996}\n",
            "35000 [944.8669085870708/s]: {'loss': 16.555835723876953}\n",
            "37500 [924.4944259274868/s]: {'loss': 18.017545700073242}\n",
            "40000 [1003.7257206438925/s]: {'loss': 18.855819702148438}\n",
            "42500 [1001.9102277061751/s]: {'loss': 19.782581329345703}\n",
            "45000 [1021.8014305742341/s]: {'loss': 16.329355239868164}\n",
            "47500 [1036.1012374904908/s]: {'loss': 18.063161849975586}\n",
            "====================\n",
            "Training: G1 relaxed reverse lr=0.0001 seed=5\n",
            "0 [0.5061945198096103/s]: {'loss': 21.891002655029297}\n",
            "1 [45.5986867138493/s]: {'loss': 19.35537338256836}\n",
            "2 [46.14601945165691/s]: {'loss': 19.94866371154785}\n",
            "4 [88.14155423864162/s]: {'loss': 20.175437927246094}\n",
            "8 [161.75020005206173/s]: {'loss': 18.36050796508789}\n",
            "16 [276.47308142313335/s]: {'loss': 17.654563903808594}\n",
            "32 [435.66999922096136/s]: {'loss': 19.537830352783203}\n",
            "64 [611.0554930821447/s]: {'loss': 19.370573043823242}\n",
            "128 [759.7667111031861/s]: {'loss': 17.544090270996094}\n",
            "256 [884.1019547138741/s]: {'loss': 16.255287170410156}\n",
            "512 [936.3510364253137/s]: {'loss': 17.333086013793945}\n",
            "1024 [1003.6025507354746/s]: {'loss': 16.714357376098633}\n",
            "2048 [1000.6374997058639/s]: {'loss': 19.174362182617188}\n",
            "2500 [945.8403677542505/s]: {'loss': 17.931549072265625}\n",
            "4096 [995.7742292061143/s]: {'loss': 17.059261322021484}\n",
            "5000 [1039.8745278035728/s]: {'loss': 17.23328971862793}\n",
            "7500 [993.0382504625557/s]: {'loss': 18.46316146850586}\n",
            "8192 [922.3963160821827/s]: {'loss': 19.10347557067871}\n",
            "10000 [953.7155864859739/s]: {'loss': 15.805063247680664}\n",
            "12500 [965.563333831504/s]: {'loss': 17.523101806640625}\n",
            "15000 [977.8821605442096/s]: {'loss': 17.382436752319336}\n",
            "16384 [982.9871750931014/s]: {'loss': 15.718986511230469}\n",
            "17500 [974.2771123382663/s]: {'loss': 17.081640243530273}\n",
            "20000 [990.1777894242323/s]: {'loss': 19.2878475189209}\n",
            "22500 [1004.9107198903946/s]: {'loss': 16.397146224975586}\n",
            "25000 [1021.1797886306177/s]: {'loss': 17.728195190429688}\n",
            "27500 [1024.1784310860407/s]: {'loss': 18.084749221801758}\n",
            "30000 [986.6332876011531/s]: {'loss': 18.88559913635254}\n",
            "32500 [990.8449163701513/s]: {'loss': 16.758256912231445}\n",
            "32768 [907.0521698432935/s]: {'loss': 16.41899871826172}\n",
            "35000 [991.3865016121954/s]: {'loss': 14.950573921203613}\n",
            "37500 [968.5628308323716/s]: {'loss': 18.699018478393555}\n",
            "40000 [982.6328829136978/s]: {'loss': 18.20891571044922}\n",
            "42500 [1009.7385279724485/s]: {'loss': 18.07818603515625}\n",
            "45000 [958.332685961101/s]: {'loss': 17.2523136138916}\n",
            "47500 [840.1880955458195/s]: {'loss': 17.99100685119629}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.001 seed=1\n",
            "0 [0.1513747286622396/s]: {'loss': 14.210431098937988}\n",
            "1 [43.32242604528177/s]: {'loss': 14.437255859375}\n",
            "2 [43.884030676836474/s]: {'loss': 14.018930435180664}\n",
            "4 [81.35906736756348/s]: {'loss': 11.462958335876465}\n",
            "8 [139.57518177734147/s]: {'loss': 10.37520980834961}\n",
            "16 [220.8094971736169/s]: {'loss': 12.366334915161133}\n",
            "32 [317.6405125122472/s]: {'loss': 10.778149604797363}\n",
            "64 [402.50989047898946/s]: {'loss': 9.608530044555664}\n",
            "128 [467.36853688050076/s]: {'loss': 10.168785095214844}\n",
            "256 [503.51222037567106/s]: {'loss': 10.465343475341797}\n",
            "512 [518.6464535905099/s]: {'loss': 9.897890090942383}\n",
            "1024 [542.345345921734/s]: {'loss': 9.805069923400879}\n",
            "2048 [545.3759130195618/s]: {'loss': 8.288918495178223}\n",
            "2500 [544.7874351712215/s]: {'loss': 8.904919624328613}\n",
            "4096 [547.1301703938586/s]: {'loss': 7.794756889343262}\n",
            "5000 [541.5205125495226/s]: {'loss': 9.821342468261719}\n",
            "7500 [552.088848008083/s]: {'loss': 7.306360244750977}\n",
            "8192 [533.4456114762016/s]: {'loss': 8.442197799682617}\n",
            "10000 [538.1274825314218/s]: {'loss': 8.704174041748047}\n",
            "12500 [540.5235435196363/s]: {'loss': 8.152933120727539}\n",
            "15000 [536.1010126180903/s]: {'loss': 8.118535041809082}\n",
            "16384 [531.0049342546089/s]: {'loss': 7.676165580749512}\n",
            "17500 [519.5374445760073/s]: {'loss': 7.9599785804748535}\n",
            "20000 [498.7663503000063/s]: {'loss': 8.651782989501953}\n",
            "22500 [506.2560700458914/s]: {'loss': 8.349021911621094}\n",
            "25000 [549.3452289956559/s]: {'loss': 6.776806354522705}\n",
            "27500 [554.2728298395268/s]: {'loss': 7.51822566986084}\n",
            "30000 [506.7135035425816/s]: {'loss': 10.025267601013184}\n",
            "32500 [522.4403114724311/s]: {'loss': 7.602092742919922}\n",
            "32768 [514.9197744212455/s]: {'loss': 8.052132606506348}\n",
            "35000 [527.7999863112447/s]: {'loss': 7.941420555114746}\n",
            "37500 [533.1961615913224/s]: {'loss': 10.210193634033203}\n",
            "40000 [534.5019855169381/s]: {'loss': 8.994291305541992}\n",
            "42500 [523.4775520539101/s]: {'loss': 8.405433654785156}\n",
            "45000 [523.0396612405173/s]: {'loss': 9.164292335510254}\n",
            "47500 [550.4800904181355/s]: {'loss': 8.20600414276123}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.001 seed=2\n",
            "0 [0.15661231709537396/s]: {'loss': 13.069185256958008}\n",
            "1 [43.95024781784079/s]: {'loss': 14.361481666564941}\n",
            "2 [44.38041224023363/s]: {'loss': 11.81908893585205}\n",
            "4 [81.63221455610592/s]: {'loss': 12.390546798706055}\n",
            "8 [139.26814812355252/s]: {'loss': 10.778971672058105}\n",
            "16 [216.75989664082687/s]: {'loss': 10.55567741394043}\n",
            "32 [304.5516239851511/s]: {'loss': 9.4141206741333}\n",
            "64 [387.679452814493/s]: {'loss': 9.8250732421875}\n",
            "128 [446.94176039160516/s]: {'loss': 11.448591232299805}\n",
            "256 [449.76305275724127/s]: {'loss': 9.947223663330078}\n",
            "512 [483.80391227436206/s]: {'loss': 10.971139907836914}\n",
            "1024 [506.14523874563645/s]: {'loss': 10.324042320251465}\n",
            "2048 [504.7209448918091/s]: {'loss': 8.552894592285156}\n",
            "2500 [504.16088255426746/s]: {'loss': 8.180931091308594}\n",
            "4096 [527.2284714482952/s]: {'loss': 8.374549865722656}\n",
            "5000 [522.6307143015656/s]: {'loss': 9.140538215637207}\n",
            "7500 [523.199483474631/s]: {'loss': 9.892132759094238}\n",
            "8192 [515.7104020235682/s]: {'loss': 10.903692245483398}\n",
            "10000 [500.4009800421658/s]: {'loss': 8.629342079162598}\n",
            "12500 [512.9743256001719/s]: {'loss': 7.729045391082764}\n",
            "15000 [523.5369600539545/s]: {'loss': 9.015105247497559}\n",
            "16384 [522.6551746305572/s]: {'loss': 8.89323616027832}\n",
            "17500 [512.6571483676837/s]: {'loss': 8.91616439819336}\n",
            "20000 [511.6815981305383/s]: {'loss': 8.335295677185059}\n",
            "22500 [521.9507567065438/s]: {'loss': 8.623294830322266}\n",
            "25000 [532.5160925262555/s]: {'loss': 8.404351234436035}\n",
            "27500 [542.3836262811624/s]: {'loss': 7.0217976570129395}\n",
            "30000 [544.8721812637832/s]: {'loss': 9.835591316223145}\n",
            "32500 [529.3166136934101/s]: {'loss': 9.429389953613281}\n",
            "32768 [518.8325148254547/s]: {'loss': 9.483062744140625}\n",
            "35000 [534.3261559128263/s]: {'loss': 9.462575912475586}\n",
            "37500 [531.3503098051983/s]: {'loss': 9.826983451843262}\n",
            "40000 [513.2235168450411/s]: {'loss': 8.180910110473633}\n",
            "42500 [515.764806062141/s]: {'loss': 7.735158920288086}\n",
            "45000 [500.66920559415865/s]: {'loss': 7.947964191436768}\n",
            "47500 [521.1334489501426/s]: {'loss': 7.967807292938232}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.001 seed=3\n",
            "0 [0.16187120354828072/s]: {'loss': 15.026816368103027}\n",
            "1 [43.336302112930724/s]: {'loss': 14.113286972045898}\n",
            "2 [44.25725169091811/s]: {'loss': 13.425019264221191}\n",
            "4 [80.15793446789806/s]: {'loss': 13.980304718017578}\n",
            "8 [137.4235444448085/s]: {'loss': 10.137044906616211}\n",
            "16 [212.6821155113838/s]: {'loss': 9.965670585632324}\n",
            "32 [294.5864876847507/s]: {'loss': 9.104392051696777}\n",
            "64 [370.8225204864814/s]: {'loss': 11.387185096740723}\n",
            "128 [414.77263294843686/s]: {'loss': 11.278064727783203}\n",
            "256 [436.7527653422907/s]: {'loss': 9.651581764221191}\n",
            "512 [502.08096856656954/s]: {'loss': 8.843854904174805}\n",
            "1024 [492.47796342127907/s]: {'loss': 10.495771408081055}\n",
            "2048 [502.35145500569257/s]: {'loss': 9.54647159576416}\n",
            "2500 [523.419783224618/s]: {'loss': 8.887649536132812}\n",
            "4096 [531.0588337586072/s]: {'loss': 10.05224323272705}\n",
            "5000 [517.2218992167432/s]: {'loss': 9.519043922424316}\n",
            "7500 [500.8318890582779/s]: {'loss': 8.539813995361328}\n",
            "8192 [504.0226652822993/s]: {'loss': 8.429607391357422}\n",
            "10000 [527.667420897916/s]: {'loss': 10.323850631713867}\n",
            "12500 [521.6936435950838/s]: {'loss': 10.157106399536133}\n",
            "15000 [547.6628529949634/s]: {'loss': 8.36557674407959}\n",
            "16384 [544.2873143137897/s]: {'loss': 8.052111625671387}\n",
            "17500 [544.077351071709/s]: {'loss': 8.337078094482422}\n",
            "20000 [522.6014866124785/s]: {'loss': 9.78773021697998}\n",
            "22500 [529.8186979147272/s]: {'loss': 8.423914909362793}\n",
            "25000 [508.5513612499146/s]: {'loss': 9.106775283813477}\n",
            "27500 [517.4418561615901/s]: {'loss': 7.317460060119629}\n",
            "30000 [527.8283824840929/s]: {'loss': 7.324846267700195}\n",
            "32500 [529.9935394502437/s]: {'loss': 9.660401344299316}\n",
            "32768 [499.73057746673607/s]: {'loss': 8.784562110900879}\n",
            "35000 [519.3595236067681/s]: {'loss': 6.9796624183654785}\n",
            "37500 [520.1805245331551/s]: {'loss': 9.046496391296387}\n",
            "40000 [531.1873535003064/s]: {'loss': 8.65731430053711}\n",
            "42500 [521.9003580519482/s]: {'loss': 9.479118347167969}\n",
            "45000 [521.9746345185455/s]: {'loss': 7.858040809631348}\n",
            "47500 [534.8810790745866/s]: {'loss': 7.630156517028809}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.001 seed=4\n",
            "0 [0.15398786256804722/s]: {'loss': 13.284795761108398}\n",
            "1 [43.5197609388132/s]: {'loss': 14.588685989379883}\n",
            "2 [43.81343556423729/s]: {'loss': 12.662724494934082}\n",
            "4 [80.2875902069256/s]: {'loss': 10.86007308959961}\n",
            "8 [138.8704433334437/s]: {'loss': 10.71683120727539}\n",
            "16 [217.02346519028276/s]: {'loss': 10.789490699768066}\n",
            "32 [302.5647610459874/s]: {'loss': 10.242528915405273}\n",
            "64 [383.1879999771602/s]: {'loss': 11.041975021362305}\n",
            "128 [435.447379306653/s]: {'loss': 12.190342903137207}\n",
            "256 [481.6921166531485/s]: {'loss': 9.60324764251709}\n",
            "512 [514.7969342560355/s]: {'loss': 11.717142105102539}\n",
            "1024 [522.9358482498013/s]: {'loss': 10.67674446105957}\n",
            "2048 [544.6435887352899/s]: {'loss': 8.467350959777832}\n",
            "2500 [539.8080794160425/s]: {'loss': 8.472803115844727}\n",
            "4096 [558.0948303870425/s]: {'loss': 9.331031799316406}\n",
            "5000 [505.84494371289696/s]: {'loss': 10.12464714050293}\n",
            "7500 [531.8635182425602/s]: {'loss': 9.02838134765625}\n",
            "8192 [535.4889666473684/s]: {'loss': 7.597955226898193}\n",
            "10000 [543.6288439439375/s]: {'loss': 9.379354476928711}\n",
            "12500 [541.4432503779501/s]: {'loss': 8.432547569274902}\n",
            "15000 [537.6876879879636/s]: {'loss': 8.135849952697754}\n",
            "16384 [520.8289001828983/s]: {'loss': 8.6885404586792}\n",
            "17500 [527.8589706664778/s]: {'loss': 8.733732223510742}\n",
            "20000 [505.6155665651908/s]: {'loss': 9.190004348754883}\n",
            "22500 [490.32023235893945/s]: {'loss': 7.876737594604492}\n",
            "25000 [501.92772228544993/s]: {'loss': 7.440218925476074}\n",
            "27500 [523.498485758703/s]: {'loss': 9.911150932312012}\n",
            "30000 [528.0310271405398/s]: {'loss': 8.199983596801758}\n",
            "32500 [533.6193753355235/s]: {'loss': 9.098115921020508}\n",
            "32768 [516.5971123005958/s]: {'loss': 8.962356567382812}\n",
            "35000 [535.4461263219305/s]: {'loss': 9.71729564666748}\n",
            "37500 [548.4312603140492/s]: {'loss': 9.302312850952148}\n",
            "40000 [513.7186749243061/s]: {'loss': 9.309452056884766}\n",
            "42500 [529.2406071395818/s]: {'loss': 10.05561351776123}\n",
            "45000 [534.6699538284643/s]: {'loss': 8.592974662780762}\n",
            "47500 [542.4729125942113/s]: {'loss': 7.376806259155273}\n",
            "====================\n",
            "Training: G2 relaxed independent lr=0.001 seed=5\n",
            "0 [0.15936691919337762/s]: {'loss': 14.300920486450195}\n",
            "1 [42.90233623828812/s]: {'loss': 13.625899314880371}\n",
            "2 [44.58326069856927/s]: {'loss': 12.219220161437988}\n",
            "4 [80.6503864938661/s]: {'loss': 11.058794975280762}\n",
            "8 [140.44212288632178/s]: {'loss': 10.25706958770752}\n",
            "16 [212.16303096981423/s]: {'loss': 10.004817962646484}\n",
            "32 [305.63488969449656/s]: {'loss': 8.910386085510254}\n",
            "64 [390.8563574203393/s]: {'loss': 11.365080833435059}\n",
            "128 [448.439532976166/s]: {'loss': 9.426258087158203}\n",
            "256 [488.04228171446755/s]: {'loss': 9.033477783203125}\n",
            "512 [500.98439762903683/s]: {'loss': 11.179535865783691}\n",
            "1024 [520.6187562850496/s]: {'loss': 8.501788139343262}\n",
            "2048 [529.6260905047245/s]: {'loss': 9.25363540649414}\n",
            "2500 [509.13900264556446/s]: {'loss': 10.321840286254883}\n",
            "4096 [519.8753704944708/s]: {'loss': 9.248409271240234}\n",
            "5000 [522.959630474031/s]: {'loss': 8.694480895996094}\n",
            "7500 [529.4292610829132/s]: {'loss': 8.5665283203125}\n",
            "8192 [504.08752995477823/s]: {'loss': 8.056187629699707}\n",
            "10000 [537.2556821579263/s]: {'loss': 8.464959144592285}\n",
            "12500 [534.4762395254583/s]: {'loss': 9.064966201782227}\n",
            "15000 [532.1321601731119/s]: {'loss': 8.30850887298584}\n",
            "16384 [527.2117587073835/s]: {'loss': 9.174439430236816}\n",
            "17500 [518.8672667371889/s]: {'loss': 8.033306121826172}\n",
            "20000 [521.2884022756256/s]: {'loss': 8.647309303283691}\n",
            "22500 [506.3456177188516/s]: {'loss': 8.569135665893555}\n",
            "25000 [524.0090175990302/s]: {'loss': 8.98105239868164}\n",
            "27500 [526.5195742374693/s]: {'loss': 8.87928581237793}\n",
            "30000 [537.5530074205647/s]: {'loss': 7.209543704986572}\n",
            "32500 [530.3235862185743/s]: {'loss': 7.983295917510986}\n",
            "32768 [517.608341606544/s]: {'loss': 7.620702743530273}\n",
            "35000 [545.2198816352183/s]: {'loss': 8.067424774169922}\n",
            "37500 [548.9744763956252/s]: {'loss': 10.31405258178711}\n",
            "40000 [541.8756022341537/s]: {'loss': 7.914586067199707}\n",
            "42500 [536.7393601885582/s]: {'loss': 7.932908535003662}\n",
            "45000 [554.3351550262871/s]: {'loss': 7.673027038574219}\n",
            "47500 [559.3172269114874/s]: {'loss': 8.489350318908691}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0001 seed=1\n",
            "0 [0.4351251464706221/s]: {'loss': 15.957115173339844}\n",
            "1 [45.56846725479119/s]: {'loss': 16.1632137298584}\n",
            "2 [46.26768005471413/s]: {'loss': 16.790348052978516}\n",
            "4 [88.31229207899945/s]: {'loss': 16.464704513549805}\n",
            "8 [163.28826426332898/s]: {'loss': 15.507373809814453}\n",
            "16 [278.2175863355582/s]: {'loss': 17.06486701965332}\n",
            "32 [430.90596446619026/s]: {'loss': 15.145926475524902}\n",
            "64 [606.192682387054/s]: {'loss': 14.097977638244629}\n",
            "128 [747.1670577363606/s]: {'loss': 14.829093933105469}\n",
            "256 [861.7330810111506/s]: {'loss': 14.739152908325195}\n",
            "512 [900.3867596227865/s]: {'loss': 14.973213195800781}\n",
            "1024 [949.1481018219363/s]: {'loss': 15.195212364196777}\n",
            "2048 [967.6854356262359/s]: {'loss': 14.977226257324219}\n",
            "2500 [944.1676629648499/s]: {'loss': 14.645010948181152}\n",
            "4096 [977.8877653247881/s]: {'loss': 13.795462608337402}\n",
            "5000 [966.556860929688/s]: {'loss': 15.948246955871582}\n",
            "7500 [958.4550586626129/s]: {'loss': 13.814555168151855}\n",
            "8192 [909.1624427986881/s]: {'loss': 14.637086868286133}\n",
            "10000 [891.6581055764452/s]: {'loss': 14.556685447692871}\n",
            "12500 [970.8693636947286/s]: {'loss': 14.298086166381836}\n",
            "15000 [1012.7701200670997/s]: {'loss': 14.329071044921875}\n",
            "16384 [1016.570198112322/s]: {'loss': 14.0249662399292}\n",
            "17500 [994.2358017162771/s]: {'loss': 14.583218574523926}\n",
            "20000 [993.1275064352081/s]: {'loss': 15.55546760559082}\n",
            "22500 [998.7511039281172/s]: {'loss': 14.45063304901123}\n",
            "25000 [1032.2917016358645/s]: {'loss': 13.641400337219238}\n",
            "27500 [982.4722231617834/s]: {'loss': 14.998819351196289}\n",
            "30000 [1008.5278628309158/s]: {'loss': 15.85170841217041}\n",
            "32500 [997.36329004637/s]: {'loss': 14.176398277282715}\n",
            "32768 [966.7603021186492/s]: {'loss': 14.073127746582031}\n",
            "35000 [1021.2042266311535/s]: {'loss': 14.378715515136719}\n",
            "37500 [1020.0440420856107/s]: {'loss': 16.155710220336914}\n",
            "40000 [1013.5447514027902/s]: {'loss': 15.076590538024902}\n",
            "42500 [1018.9366609382963/s]: {'loss': 14.627787590026855}\n",
            "45000 [998.4749246222734/s]: {'loss': 14.710015296936035}\n",
            "47500 [1070.3193229825254/s]: {'loss': 15.071067810058594}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0001 seed=2\n",
            "0 [0.36880037774239127/s]: {'loss': 15.701319694519043}\n",
            "1 [45.745397434778816/s]: {'loss': 15.667810440063477}\n",
            "2 [46.664560201152625/s]: {'loss': 15.90308952331543}\n",
            "4 [89.50999285081681/s]: {'loss': 16.432228088378906}\n",
            "8 [164.95797691384973/s]: {'loss': 16.24688720703125}\n",
            "16 [283.62409345257214/s]: {'loss': 16.28315544128418}\n",
            "32 [446.8026471723991/s]: {'loss': 14.896536827087402}\n",
            "64 [612.3825836211577/s]: {'loss': 14.583479881286621}\n",
            "128 [769.5463200534368/s]: {'loss': 16.21204376220703}\n",
            "256 [882.0495282282642/s]: {'loss': 15.178605079650879}\n",
            "512 [925.682595569104/s]: {'loss': 15.016736030578613}\n",
            "1024 [926.6676252014088/s]: {'loss': 16.442310333251953}\n",
            "2048 [981.4672203448392/s]: {'loss': 14.548775672912598}\n",
            "2500 [968.6163951378745/s]: {'loss': 14.688882827758789}\n",
            "4096 [957.4647684743776/s]: {'loss': 14.58430290222168}\n",
            "5000 [1000.9957593682375/s]: {'loss': 14.801424026489258}\n",
            "7500 [984.1404843422256/s]: {'loss': 15.264164924621582}\n",
            "8192 [939.0999485226719/s]: {'loss': 16.408905029296875}\n",
            "10000 [1000.9917954409495/s]: {'loss': 14.18651008605957}\n",
            "12500 [1009.457891569072/s]: {'loss': 14.550213813781738}\n",
            "15000 [968.0390252548939/s]: {'loss': 14.685896873474121}\n",
            "16384 [1004.1062108795128/s]: {'loss': 14.585668563842773}\n",
            "17500 [913.0153148282085/s]: {'loss': 15.31024169921875}\n",
            "20000 [909.0356623910266/s]: {'loss': 13.548501014709473}\n",
            "22500 [934.3472798653354/s]: {'loss': 15.32172679901123}\n",
            "25000 [997.6932454069475/s]: {'loss': 15.148119926452637}\n",
            "27500 [985.3311412361594/s]: {'loss': 14.117419242858887}\n",
            "30000 [994.855305771308/s]: {'loss': 16.28557586669922}\n",
            "32500 [986.3490160082672/s]: {'loss': 15.127967834472656}\n",
            "32768 [929.8639476266029/s]: {'loss': 15.321243286132812}\n",
            "35000 [983.8851130107977/s]: {'loss': 15.493979454040527}\n",
            "37500 [996.9135473821436/s]: {'loss': 15.157760620117188}\n",
            "40000 [998.9600517344729/s]: {'loss': 14.580475807189941}\n",
            "42500 [984.13503475148/s]: {'loss': 14.163434028625488}\n",
            "45000 [991.2749547317493/s]: {'loss': 14.673347473144531}\n",
            "47500 [999.1312904381824/s]: {'loss': 13.901299476623535}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0001 seed=3\n",
            "0 [0.42362560674616795/s]: {'loss': 16.43760108947754}\n",
            "1 [45.32863580853984/s]: {'loss': 16.301050186157227}\n",
            "2 [46.310591924389136/s]: {'loss': 16.115840911865234}\n",
            "4 [88.51263545524569/s]: {'loss': 17.262231826782227}\n",
            "8 [162.1660786606996/s]: {'loss': 16.0316104888916}\n",
            "16 [280.08941643920235/s]: {'loss': 14.637675285339355}\n",
            "32 [364.89461865121007/s]: {'loss': 14.213533401489258}\n",
            "64 [621.8591596280457/s]: {'loss': 15.148396492004395}\n",
            "128 [772.3716677168843/s]: {'loss': 15.780769348144531}\n",
            "256 [879.1592627042039/s]: {'loss': 13.87659740447998}\n",
            "512 [935.8988916432199/s]: {'loss': 15.183709144592285}\n",
            "1024 [955.4588809188848/s]: {'loss': 15.39000129699707}\n",
            "2048 [977.4544924901566/s]: {'loss': 15.2023344039917}\n",
            "2500 [970.5383799833621/s]: {'loss': 14.293210983276367}\n",
            "4096 [988.343988887734/s]: {'loss': 15.653700828552246}\n",
            "5000 [964.8784021648654/s]: {'loss': 15.498260498046875}\n",
            "7500 [971.3744605487511/s]: {'loss': 14.759331703186035}\n",
            "8192 [953.8903238803994/s]: {'loss': 14.102752685546875}\n",
            "10000 [961.8844361416205/s]: {'loss': 15.657035827636719}\n",
            "12500 [988.3943483965277/s]: {'loss': 15.757643699645996}\n",
            "15000 [994.0531772794021/s]: {'loss': 14.95291519165039}\n",
            "16384 [987.8012430308389/s]: {'loss': 14.305536270141602}\n",
            "17500 [995.4240569790367/s]: {'loss': 14.842391014099121}\n",
            "20000 [1005.9267189691461/s]: {'loss': 14.896536827087402}\n",
            "22500 [975.8233896056145/s]: {'loss': 15.120834350585938}\n",
            "25000 [947.595743836759/s]: {'loss': 15.52439022064209}\n",
            "27500 [966.247019341693/s]: {'loss': 14.219127655029297}\n",
            "30000 [836.3867012268349/s]: {'loss': 15.083084106445312}\n",
            "32500 [914.9558479634219/s]: {'loss': 16.579607009887695}\n",
            "32768 [948.4459429585867/s]: {'loss': 14.67280387878418}\n",
            "35000 [1005.3303545406221/s]: {'loss': 13.397035598754883}\n",
            "37500 [977.1655251541545/s]: {'loss': 14.530915260314941}\n",
            "40000 [975.8164879536578/s]: {'loss': 15.450907707214355}\n",
            "42500 [866.1588708518974/s]: {'loss': 15.254636764526367}\n",
            "45000 [900.8908077479414/s]: {'loss': 14.893028259277344}\n",
            "47500 [885.2293992036974/s]: {'loss': 14.344258308410645}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0001 seed=4\n",
            "0 [0.43034763083815464/s]: {'loss': 14.394914627075195}\n",
            "1 [45.76835948582528/s]: {'loss': 16.996788024902344}\n",
            "2 [46.52996383483837/s]: {'loss': 15.862955093383789}\n",
            "4 [89.36505129488968/s]: {'loss': 15.632587432861328}\n",
            "8 [163.73127220205333/s]: {'loss': 15.651869773864746}\n",
            "16 [280.314043925382/s]: {'loss': 15.536267280578613}\n",
            "32 [439.3206420697059/s]: {'loss': 15.222908973693848}\n",
            "64 [622.5831841248341/s]: {'loss': 15.367044448852539}\n",
            "128 [715.9386145057102/s]: {'loss': 15.786477088928223}\n",
            "256 [905.1594896842645/s]: {'loss': 15.025976181030273}\n",
            "512 [956.5253780698129/s]: {'loss': 15.975183486938477}\n",
            "1024 [1015.8673529677508/s]: {'loss': 15.029305458068848}\n",
            "2048 [1098.0268846068498/s]: {'loss': 14.120124816894531}\n",
            "2500 [1064.8491088930953/s]: {'loss': 14.524639129638672}\n",
            "4096 [1097.9916436555275/s]: {'loss': 14.523709297180176}\n",
            "5000 [1070.5996802587747/s]: {'loss': 15.472145080566406}\n",
            "7500 [1092.294656717245/s]: {'loss': 14.746271133422852}\n",
            "8192 [1074.0604909183692/s]: {'loss': 14.119362831115723}\n",
            "10000 [1088.404813649486/s]: {'loss': 15.056888580322266}\n",
            "12500 [1091.9625096093025/s]: {'loss': 14.321300506591797}\n",
            "15000 [1088.0633419687238/s]: {'loss': 14.638522148132324}\n",
            "16384 [1049.6199319626783/s]: {'loss': 14.90566635131836}\n",
            "17500 [1059.0485764584691/s]: {'loss': 15.54610538482666}\n",
            "20000 [1042.3610266149112/s]: {'loss': 14.677886009216309}\n",
            "22500 [1051.61421863907/s]: {'loss': 13.845954895019531}\n",
            "25000 [1062.536023288372/s]: {'loss': 13.56963062286377}\n",
            "27500 [1046.195069261375/s]: {'loss': 16.070846557617188}\n",
            "30000 [1060.382189256968/s]: {'loss': 14.311053276062012}\n",
            "32500 [1036.5044545208682/s]: {'loss': 15.035171508789062}\n",
            "32768 [955.0156471294905/s]: {'loss': 14.766923904418945}\n",
            "35000 [999.230915245901/s]: {'loss': 15.025595664978027}\n",
            "37500 [1012.1179917598236/s]: {'loss': 15.13768482208252}\n",
            "40000 [997.1319675311338/s]: {'loss': 15.91703987121582}\n",
            "42500 [898.0504425393433/s]: {'loss': 15.810224533081055}\n",
            "45000 [907.5209294556395/s]: {'loss': 14.716618537902832}\n",
            "47500 [979.7328200160838/s]: {'loss': 14.300201416015625}\n",
            "====================\n",
            "Training: G1 relaxed independent lr=0.0001 seed=5\n",
            "0 [0.3674315270368918/s]: {'loss': 16.2918643951416}\n",
            "1 [45.95943502701044/s]: {'loss': 16.129655838012695}\n",
            "2 [46.27584761190242/s]: {'loss': 16.458826065063477}\n",
            "4 [89.2367133313476/s]: {'loss': 16.17874526977539}\n",
            "8 [162.0673879443586/s]: {'loss': 15.941082954406738}\n",
            "16 [273.75729787060453/s]: {'loss': 14.927136421203613}\n",
            "32 [427.5512006167137/s]: {'loss': 14.427005767822266}\n",
            "64 [585.9321857797064/s]: {'loss': 15.122774124145508}\n",
            "128 [741.3623800002209/s]: {'loss': 14.105066299438477}\n",
            "256 [836.6619478183898/s]: {'loss': 14.076435089111328}\n",
            "512 [867.8349617907239/s]: {'loss': 15.527233123779297}\n",
            "1024 [907.0190283270852/s]: {'loss': 14.54465103149414}\n",
            "2048 [929.8710177889252/s]: {'loss': 14.618925094604492}\n",
            "2500 [898.7471884305036/s]: {'loss': 16.188892364501953}\n",
            "4096 [920.2177342063025/s]: {'loss': 16.117094039916992}\n",
            "5000 [943.2570231479973/s]: {'loss': 15.337906837463379}\n",
            "7500 [986.4050592091759/s]: {'loss': 14.408353805541992}\n",
            "8192 [931.5078730794696/s]: {'loss': 13.521308898925781}\n",
            "10000 [982.5778032543631/s]: {'loss': 14.76069164276123}\n",
            "12500 [974.6600253923059/s]: {'loss': 15.591585159301758}\n",
            "15000 [996.5699948203026/s]: {'loss': 14.886190414428711}\n",
            "16384 [956.2939767277045/s]: {'loss': 14.760581970214844}\n",
            "17500 [938.0511338153407/s]: {'loss': 14.70612621307373}\n",
            "20000 [941.0765440501842/s]: {'loss': 14.598355293273926}\n",
            "22500 [940.105246500861/s]: {'loss': 14.338083267211914}\n",
            "25000 [981.6014324257353/s]: {'loss': 14.98466968536377}\n",
            "27500 [972.0724408003512/s]: {'loss': 14.684999465942383}\n",
            "30000 [1001.5178796905558/s]: {'loss': 14.152283668518066}\n",
            "32500 [997.6305968871234/s]: {'loss': 14.381376266479492}\n",
            "32768 [930.5798623759032/s]: {'loss': 14.162753105163574}\n",
            "35000 [965.5413873444041/s]: {'loss': 14.047012329101562}\n",
            "37500 [1016.6576271331053/s]: {'loss': 15.959558486938477}\n",
            "40000 [1039.1526520058158/s]: {'loss': 14.611981391906738}\n",
            "42500 [1048.6087165919578/s]: {'loss': 14.490899085998535}\n",
            "45000 [1000.8157703771031/s]: {'loss': 14.26820182800293}\n",
            "47500 [987.6715313224599/s]: {'loss': 14.55783462524414}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=1e-05 seed=1\n",
            "0 [0.16754170972910182/s]: {'loss': 9.620404243469238}\n",
            "1 [45.31051767349408/s]: {'loss': 9.458749771118164}\n",
            "2 [46.1216626347042/s]: {'loss': 9.66392993927002}\n",
            "4 [86.84578432996521/s]: {'loss': 9.727409362792969}\n",
            "8 [157.6035771991132/s]: {'loss': 9.847696304321289}\n",
            "16 [265.47908095449077/s]: {'loss': 9.455382347106934}\n",
            "32 [402.952174513489/s]: {'loss': 9.20744800567627}\n",
            "64 [551.5940606673324/s]: {'loss': 8.736763954162598}\n",
            "128 [655.7121891641018/s]: {'loss': 6.643542289733887}\n",
            "256 [695.1279006233054/s]: {'loss': 4.415852069854736}\n",
            "512 [809.2260567121997/s]: {'loss': 3.417771339416504}\n",
            "1024 [828.3635569719812/s]: {'loss': 2.8268144130706787}\n",
            "2048 [856.727927867547/s]: {'loss': 2.778416872024536}\n",
            "2500 [842.141425269057/s]: {'loss': 2.743954658508301}\n",
            "4096 [847.9542056461885/s]: {'loss': 2.5897412300109863}\n",
            "5000 [837.988698487238/s]: {'loss': 2.6397016048431396}\n",
            "7500 [843.5332317948997/s]: {'loss': 2.6426031589508057}\n",
            "8192 [798.5644529858209/s]: {'loss': 2.713858127593994}\n",
            "10000 [814.7018266944705/s]: {'loss': 2.70184063911438}\n",
            "12500 [843.0473054752055/s]: {'loss': 2.5651373863220215}\n",
            "15000 [851.9841504245514/s]: {'loss': 2.604236602783203}\n",
            "16384 [828.6869906553317/s]: {'loss': 2.6645891666412354}\n",
            "17500 [825.2550361460058/s]: {'loss': 2.6865835189819336}\n",
            "20000 [813.5185895502286/s]: {'loss': 2.6417601108551025}\n",
            "22500 [812.7479244069773/s]: {'loss': 2.5164079666137695}\n",
            "25000 [855.4988147080632/s]: {'loss': 2.498281955718994}\n",
            "27500 [835.1589745484933/s]: {'loss': 2.563617706298828}\n",
            "30000 [850.5959621319573/s]: {'loss': 2.526339054107666}\n",
            "32500 [852.1307942624263/s]: {'loss': 2.7083327770233154}\n",
            "32768 [805.2407949585479/s]: {'loss': 2.4828784465789795}\n",
            "35000 [839.8195186978684/s]: {'loss': 2.6980316638946533}\n",
            "37500 [849.6865544275752/s]: {'loss': 2.5395238399505615}\n",
            "40000 [837.3786398075407/s]: {'loss': 2.5881567001342773}\n",
            "42500 [823.6024769590638/s]: {'loss': 2.642108917236328}\n",
            "45000 [820.0407980807822/s]: {'loss': 2.494704008102417}\n",
            "47500 [827.0216215973209/s]: {'loss': 2.7213857173919678}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=1e-05 seed=2\n",
            "0 [0.17161598040593606/s]: {'loss': 9.694963455200195}\n",
            "1 [45.2455097571763/s]: {'loss': 9.630244255065918}\n",
            "2 [45.852417080263244/s]: {'loss': 9.501185417175293}\n",
            "4 [86.93758938750129/s]: {'loss': 9.507171630859375}\n",
            "8 [157.0459234297482/s]: {'loss': 9.430424690246582}\n",
            "16 [268.27663623135106/s]: {'loss': 9.467093467712402}\n",
            "32 [411.6072889641256/s]: {'loss': 9.59355640411377}\n",
            "64 [555.359955643276/s]: {'loss': 8.728759765625}\n",
            "128 [672.7267295865432/s]: {'loss': 6.4434733390808105}\n",
            "256 [676.0414889584821/s]: {'loss': 4.336887836456299}\n",
            "512 [798.1655796417352/s]: {'loss': 3.442890167236328}\n",
            "1024 [814.9045171288732/s]: {'loss': 2.8339617252349854}\n",
            "2048 [816.5998417362318/s]: {'loss': 2.6579978466033936}\n",
            "2500 [790.6780680487847/s]: {'loss': 2.7907915115356445}\n",
            "4096 [809.6741766531707/s]: {'loss': 2.6905531883239746}\n",
            "5000 [801.9184400065564/s]: {'loss': 2.603661060333252}\n",
            "7500 [807.9783796495747/s]: {'loss': 2.6501519680023193}\n",
            "8192 [794.7886223521042/s]: {'loss': 2.6428329944610596}\n",
            "10000 [831.4923429651616/s]: {'loss': 2.604755401611328}\n",
            "12500 [853.0973569404101/s]: {'loss': 2.6151607036590576}\n",
            "15000 [851.2201764743368/s]: {'loss': 2.557849407196045}\n",
            "16384 [854.3049545983017/s]: {'loss': 2.6945059299468994}\n",
            "17500 [845.1215147049027/s]: {'loss': 2.701578140258789}\n",
            "20000 [864.4182594112127/s]: {'loss': 2.6596200466156006}\n",
            "22500 [855.4970697779646/s]: {'loss': 2.601830244064331}\n",
            "25000 [844.4956805384794/s]: {'loss': 2.605980157852173}\n",
            "27500 [860.4319670839083/s]: {'loss': 2.557478666305542}\n",
            "30000 [817.419111970662/s]: {'loss': 2.6240763664245605}\n",
            "32500 [799.9524564389369/s]: {'loss': 2.690424680709839}\n",
            "32768 [764.905302883382/s]: {'loss': 2.5298407077789307}\n",
            "35000 [795.3104276487094/s]: {'loss': 2.6401164531707764}\n",
            "37500 [833.1868641103576/s]: {'loss': 2.6369428634643555}\n",
            "40000 [854.5621140945586/s]: {'loss': 2.6966114044189453}\n",
            "42500 [862.6921531144961/s]: {'loss': 2.634911298751831}\n",
            "45000 [855.0497650190205/s]: {'loss': 2.6783902645111084}\n",
            "47500 [852.5399050818265/s]: {'loss': 2.5598456859588623}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=1e-05 seed=3\n",
            "0 [0.17359352153221064/s]: {'loss': 9.501794815063477}\n",
            "1 [45.350200568728575/s]: {'loss': 9.566295623779297}\n",
            "2 [45.86344749158028/s]: {'loss': 9.801520347595215}\n",
            "4 [87.14350418649103/s]: {'loss': 9.438152313232422}\n",
            "8 [158.32640658324368/s]: {'loss': 9.488899230957031}\n",
            "16 [267.19779580980895/s]: {'loss': 9.304677963256836}\n",
            "32 [414.14998765736857/s]: {'loss': 9.256352424621582}\n",
            "64 [566.4079539843773/s]: {'loss': 8.664390563964844}\n",
            "128 [693.4256125440761/s]: {'loss': 6.646488189697266}\n",
            "256 [725.2062498902474/s]: {'loss': 4.148489952087402}\n",
            "512 [823.6566136965454/s]: {'loss': 3.181044578552246}\n",
            "1024 [843.9333006630085/s]: {'loss': 2.7669308185577393}\n",
            "2048 [867.9052842396294/s]: {'loss': 2.8282620906829834}\n",
            "2500 [856.3864067758328/s]: {'loss': 2.675232172012329}\n",
            "4096 [890.4402784236564/s]: {'loss': 2.6147515773773193}\n",
            "5000 [885.719268410735/s]: {'loss': 2.616776466369629}\n",
            "7500 [865.2106876676353/s]: {'loss': 2.6740949153900146}\n",
            "8192 [798.599169004718/s]: {'loss': 2.733872175216675}\n",
            "10000 [835.6305886151376/s]: {'loss': 2.6977877616882324}\n",
            "12500 [854.7005202984201/s]: {'loss': 2.6498239040374756}\n",
            "15000 [880.1237472575242/s]: {'loss': 2.647338390350342}\n",
            "16384 [867.7791644504719/s]: {'loss': 2.5604820251464844}\n",
            "17500 [864.2044472294222/s]: {'loss': 2.5712625980377197}\n",
            "20000 [876.0097818597162/s]: {'loss': 2.562896728515625}\n",
            "22500 [880.3521489194325/s]: {'loss': 2.511918067932129}\n",
            "25000 [873.329363311165/s]: {'loss': 2.573056936264038}\n",
            "27500 [856.5518156275353/s]: {'loss': 2.611018180847168}\n",
            "30000 [823.7929028687755/s]: {'loss': 2.581838607788086}\n",
            "32500 [819.5135279489349/s]: {'loss': 2.60619854927063}\n",
            "32768 [812.2428736488494/s]: {'loss': 2.5810277462005615}\n",
            "35000 [846.6154485453181/s]: {'loss': 2.4149792194366455}\n",
            "37500 [833.9953379182122/s]: {'loss': 2.5868499279022217}\n",
            "40000 [814.7347443915193/s]: {'loss': 2.60945987701416}\n",
            "42500 [810.2166594897311/s]: {'loss': 2.5150277614593506}\n",
            "45000 [810.7263891216986/s]: {'loss': 2.753286361694336}\n",
            "47500 [774.3579590363682/s]: {'loss': 2.4899704456329346}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=1e-05 seed=4\n",
            "0 [0.16864177141279638/s]: {'loss': 9.63626480102539}\n",
            "1 [45.38258620876208/s]: {'loss': 9.877508163452148}\n",
            "2 [46.07606283642755/s]: {'loss': 9.76362133026123}\n",
            "4 [87.99362228842361/s]: {'loss': 9.608612060546875}\n",
            "8 [160.92635294569033/s]: {'loss': 9.574258804321289}\n",
            "16 [273.06222229455904/s]: {'loss': 9.435259819030762}\n",
            "32 [417.25286162837693/s]: {'loss': 9.586897850036621}\n",
            "64 [562.0696170725987/s]: {'loss': 8.79395866394043}\n",
            "128 [683.8335885057764/s]: {'loss': 6.876758098602295}\n",
            "256 [709.1327242395464/s]: {'loss': 4.479200839996338}\n",
            "512 [832.2425213865673/s]: {'loss': 3.3436031341552734}\n",
            "1024 [845.0966892421029/s]: {'loss': 2.820544481277466}\n",
            "2048 [862.3055749132418/s]: {'loss': 2.768613815307617}\n",
            "2500 [822.4896172815082/s]: {'loss': 2.8284449577331543}\n",
            "4096 [843.9181753107406/s]: {'loss': 2.764087200164795}\n",
            "5000 [833.8919478250505/s]: {'loss': 2.6435835361480713}\n",
            "7500 [849.9801037200491/s]: {'loss': 2.642683506011963}\n",
            "8192 [843.0019863473834/s]: {'loss': 2.6398983001708984}\n",
            "10000 [847.2585947574622/s]: {'loss': 2.5715436935424805}\n",
            "12500 [849.5697283745284/s]: {'loss': 2.635300874710083}\n",
            "15000 [831.4333069529984/s]: {'loss': 2.607621669769287}\n",
            "16384 [844.3375245850469/s]: {'loss': 2.65168833732605}\n",
            "17500 [839.6054608289681/s]: {'loss': 2.606642246246338}\n",
            "20000 [857.969356226786/s]: {'loss': 2.6125683784484863}\n",
            "22500 [884.4471892981296/s]: {'loss': 2.6984751224517822}\n",
            "25000 [873.9810648660322/s]: {'loss': 2.6235437393188477}\n",
            "27500 [846.619013450699/s]: {'loss': 2.551591157913208}\n",
            "30000 [847.6570388105821/s]: {'loss': 2.554622173309326}\n",
            "32500 [835.3165185989241/s]: {'loss': 2.522847890853882}\n",
            "32768 [778.6507584767982/s]: {'loss': 2.595889091491699}\n",
            "35000 [836.34345117666/s]: {'loss': 2.5634536743164062}\n",
            "37500 [839.2913900547537/s]: {'loss': 2.636152744293213}\n",
            "40000 [850.7145890263257/s]: {'loss': 2.5236637592315674}\n",
            "42500 [848.0100139610261/s]: {'loss': 2.564481735229492}\n",
            "45000 [849.3982993986112/s]: {'loss': 2.6853878498077393}\n",
            "47500 [871.0804635589942/s]: {'loss': 2.5639429092407227}\n",
            "====================\n",
            "Training: G2 relaxed fixed lr=1e-05 seed=5\n",
            "0 [0.16872614436930986/s]: {'loss': 9.449899673461914}\n",
            "1 [45.32324782261028/s]: {'loss': 9.321331024169922}\n",
            "2 [46.10391865897225/s]: {'loss': 9.383779525756836}\n",
            "4 [87.12630737113241/s]: {'loss': 9.413990020751953}\n",
            "8 [156.75392650590027/s]: {'loss': 9.47490119934082}\n",
            "16 [260.39649539419054/s]: {'loss': 9.233020782470703}\n",
            "32 [396.12582269365396/s]: {'loss': 9.279948234558105}\n",
            "64 [536.6347926912159/s]: {'loss': 8.40071964263916}\n",
            "128 [649.9994091694957/s]: {'loss': 6.412140846252441}\n",
            "256 [647.2433846550762/s]: {'loss': 4.3495025634765625}\n",
            "512 [745.2958883647581/s]: {'loss': 3.2996740341186523}\n",
            "1024 [777.5540075565428/s]: {'loss': 2.8022680282592773}\n",
            "2048 [813.155863191874/s]: {'loss': 2.5953311920166016}\n",
            "2500 [810.0270623517645/s]: {'loss': 2.7774055004119873}\n",
            "4096 [803.7283048825278/s]: {'loss': 2.641695022583008}\n",
            "5000 [766.7686050523218/s]: {'loss': 2.5236423015594482}\n",
            "7500 [813.4716344342681/s]: {'loss': 2.778883457183838}\n",
            "8192 [844.9365285637765/s]: {'loss': 2.5810587406158447}\n",
            "10000 [818.2834160738223/s]: {'loss': 2.7805492877960205}\n",
            "12500 [824.1199316073261/s]: {'loss': 2.5907654762268066}\n",
            "15000 [814.298622082939/s]: {'loss': 2.6221909523010254}\n",
            "16384 [785.8355258526675/s]: {'loss': 2.5331192016601562}\n",
            "17500 [786.9885246472178/s]: {'loss': 2.579165458679199}\n",
            "20000 [812.1956375126477/s]: {'loss': 2.564807891845703}\n",
            "22500 [823.0034978056793/s]: {'loss': 2.612290859222412}\n",
            "25000 [798.1398941538454/s]: {'loss': 2.624934434890747}\n",
            "27500 [830.5872868125685/s]: {'loss': 2.732065200805664}\n",
            "30000 [840.832653472311/s]: {'loss': 2.5614137649536133}\n",
            "32500 [866.1130827946572/s]: {'loss': 2.636868715286255}\n",
            "32768 [828.07725662087/s]: {'loss': 2.6165921688079834}\n",
            "35000 [878.0109626556173/s]: {'loss': 2.652395486831665}\n",
            "37500 [883.8324580781067/s]: {'loss': 2.6454641819000244}\n",
            "40000 [840.5232204463275/s]: {'loss': 2.667243242263794}\n",
            "42500 [846.8908838582021/s]: {'loss': 2.6501810550689697}\n",
            "45000 [843.3357418468172/s]: {'loss': 2.485081911087036}\n",
            "47500 [855.1692190754566/s]: {'loss': 2.624483108520508}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0001 seed=1\n",
            "0 [0.4441647818741379/s]: {'loss': 11.253588676452637}\n",
            "1 [45.97303636802069/s]: {'loss': 11.054055213928223}\n",
            "2 [45.97102084657708/s]: {'loss': 11.003745079040527}\n",
            "4 [90.30106786083363/s]: {'loss': 10.835798263549805}\n",
            "8 [169.61588466632293/s]: {'loss': 10.04500961303711}\n",
            "16 [298.96052104029866/s]: {'loss': 9.573836326599121}\n",
            "32 [486.2186028314327/s]: {'loss': 9.192584037780762}\n",
            "64 [713.5635078019086/s]: {'loss': 8.932415962219238}\n",
            "128 [911.3934805268001/s]: {'loss': 8.872515678405762}\n",
            "256 [1070.891111860228/s]: {'loss': 8.979681015014648}\n",
            "512 [1081.6072720825846/s]: {'loss': 9.075236320495605}\n",
            "1024 [1131.6262016538994/s]: {'loss': 8.832164764404297}\n",
            "2048 [1165.1141538439836/s]: {'loss': 8.988265037536621}\n",
            "2500 [1079.5448456666747/s]: {'loss': 8.916664123535156}\n",
            "4096 [1119.7928239747514/s]: {'loss': 8.966434478759766}\n",
            "5000 [1117.8140053885247/s]: {'loss': 8.92479419708252}\n",
            "7500 [1123.1751601011117/s]: {'loss': 8.848198890686035}\n",
            "8192 [1085.9108548869308/s]: {'loss': 8.837461471557617}\n",
            "10000 [1112.7879581263232/s]: {'loss': 8.893329620361328}\n",
            "12500 [1117.5273241471466/s]: {'loss': 8.866544723510742}\n",
            "15000 [1133.3088566450372/s]: {'loss': 9.064815521240234}\n",
            "16384 [1124.16448708606/s]: {'loss': 8.795783042907715}\n",
            "17500 [1082.832462558212/s]: {'loss': 8.919626235961914}\n",
            "20000 [1072.3627209305942/s]: {'loss': 8.923416137695312}\n",
            "22500 [1080.9282918684519/s]: {'loss': 8.901612281799316}\n",
            "25000 [1080.0211394823712/s]: {'loss': 8.953311920166016}\n",
            "27500 [1081.9852148691657/s]: {'loss': 8.740928649902344}\n",
            "30000 [1142.800968362347/s]: {'loss': 8.9279203414917}\n",
            "32500 [1170.8263067445314/s]: {'loss': 8.770210266113281}\n",
            "32768 [1067.400889189379/s]: {'loss': 8.726078033447266}\n",
            "35000 [1156.358794006595/s]: {'loss': 8.947345733642578}\n",
            "37500 [1164.3299586312514/s]: {'loss': 8.934565544128418}\n",
            "40000 [1145.7750789636957/s]: {'loss': 9.037671089172363}\n",
            "42500 [1177.861757920841/s]: {'loss': 8.82069206237793}\n",
            "45000 [1252.7271871437572/s]: {'loss': 8.988815307617188}\n",
            "47500 [1185.6566410842709/s]: {'loss': 8.980180740356445}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0001 seed=2\n",
            "0 [0.4593083300380659/s]: {'loss': 11.48671817779541}\n",
            "1 [45.00712507511374/s]: {'loss': 11.263716697692871}\n",
            "2 [45.82586559157407/s]: {'loss': 11.15749740600586}\n",
            "4 [88.39138910255735/s]: {'loss': 10.982101440429688}\n",
            "8 [165.65508797567094/s]: {'loss': 10.693620681762695}\n",
            "16 [285.22978578714725/s]: {'loss': 9.922576904296875}\n",
            "32 [472.84737713581114/s]: {'loss': 9.27806568145752}\n",
            "64 [679.917367010633/s]: {'loss': 8.936975479125977}\n",
            "128 [891.0040262486184/s]: {'loss': 9.033424377441406}\n",
            "256 [1035.7385067117332/s]: {'loss': 9.06152057647705}\n",
            "512 [1131.360903451902/s]: {'loss': 8.852639198303223}\n",
            "1024 [1159.8389920584855/s]: {'loss': 8.878852844238281}\n",
            "2048 [1212.489754736439/s]: {'loss': 8.981762886047363}\n",
            "2500 [1184.005096187415/s]: {'loss': 8.919405937194824}\n",
            "4096 [1220.6878199261362/s]: {'loss': 8.777703285217285}\n",
            "5000 [1147.3232154636617/s]: {'loss': 8.732282638549805}\n",
            "7500 [1150.22910771507/s]: {'loss': 8.902729988098145}\n",
            "8192 [1203.7456906115613/s]: {'loss': 9.004717826843262}\n",
            "10000 [1169.1526242369898/s]: {'loss': 8.905057907104492}\n",
            "12500 [1207.994558715916/s]: {'loss': 8.97771167755127}\n",
            "15000 [1114.9970428402175/s]: {'loss': 8.911456108093262}\n",
            "16384 [1068.9029190214785/s]: {'loss': 8.795857429504395}\n",
            "17500 [1071.4364307451438/s]: {'loss': 9.044198989868164}\n",
            "20000 [1132.7729763399943/s]: {'loss': 9.010990142822266}\n",
            "22500 [1212.88350973909/s]: {'loss': 9.17077922821045}\n",
            "25000 [1248.865413270648/s]: {'loss': 8.917143821716309}\n",
            "27500 [1219.0997754740251/s]: {'loss': 8.830936431884766}\n",
            "30000 [1157.5090620815924/s]: {'loss': 8.933673858642578}\n",
            "32500 [1142.0377421290332/s]: {'loss': 8.625694274902344}\n",
            "32768 [1058.6539510922541/s]: {'loss': 8.86173152923584}\n",
            "35000 [1157.696693590632/s]: {'loss': 9.02430248260498}\n",
            "37500 [1168.5480207780306/s]: {'loss': 9.010757446289062}\n",
            "40000 [1159.3788833198755/s]: {'loss': 8.73306941986084}\n",
            "42500 [1151.3437958761053/s]: {'loss': 8.68886661529541}\n",
            "45000 [1163.4437302417525/s]: {'loss': 8.912691116333008}\n",
            "47500 [1144.1571740875095/s]: {'loss': 8.60704517364502}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0001 seed=3\n",
            "0 [0.46553265773465186/s]: {'loss': 11.10252571105957}\n",
            "1 [45.89305526681475/s]: {'loss': 11.112968444824219}\n",
            "2 [46.33463688385144/s]: {'loss': 10.74839973449707}\n",
            "4 [89.55203740672339/s]: {'loss': 10.77710247039795}\n",
            "8 [165.83684403016795/s]: {'loss': 10.564961433410645}\n",
            "16 [287.6554420135793/s]: {'loss': 9.73469066619873}\n",
            "32 [469.6671752306034/s]: {'loss': 9.206621170043945}\n",
            "64 [663.2457589009957/s]: {'loss': 9.076869010925293}\n",
            "128 [848.8453433511681/s]: {'loss': 9.0321044921875}\n",
            "256 [993.4639741082118/s]: {'loss': 9.01891040802002}\n",
            "512 [1057.758042223954/s]: {'loss': 8.836455345153809}\n",
            "1024 [1118.7945622262905/s]: {'loss': 8.939542770385742}\n",
            "2048 [1129.7096153355499/s]: {'loss': 8.94251823425293}\n",
            "2500 [1117.3551418393736/s]: {'loss': 9.031143188476562}\n",
            "4096 [1151.6360627901515/s]: {'loss': 9.025495529174805}\n",
            "5000 [1124.671737647345/s]: {'loss': 8.984721183776855}\n",
            "7500 [1142.2779762109665/s]: {'loss': 9.014832496643066}\n",
            "8192 [1200.533233842411/s]: {'loss': 8.927578926086426}\n",
            "10000 [1170.288062132216/s]: {'loss': 8.881152153015137}\n",
            "12500 [1125.0886674068001/s]: {'loss': 8.8356294631958}\n",
            "15000 [1106.5119709375144/s]: {'loss': 8.758186340332031}\n",
            "16384 [1223.039129596602/s]: {'loss': 8.865188598632812}\n",
            "17500 [1198.2596785556302/s]: {'loss': 8.892529487609863}\n",
            "20000 [1218.4009951006053/s]: {'loss': 8.808891296386719}\n",
            "22500 [1198.9719203633908/s]: {'loss': 8.874957084655762}\n",
            "25000 [1189.9662419073125/s]: {'loss': 8.907066345214844}\n",
            "27500 [1117.3303653677199/s]: {'loss': 9.040956497192383}\n",
            "30000 [1145.17319093224/s]: {'loss': 8.994937896728516}\n",
            "32500 [1124.6625720547024/s]: {'loss': 8.876879692077637}\n",
            "32768 [1016.1942865408259/s]: {'loss': 8.895533561706543}\n",
            "35000 [1131.316166205843/s]: {'loss': 8.823177337646484}\n",
            "37500 [1082.818399370658/s]: {'loss': 8.84089469909668}\n",
            "40000 [1069.405669754341/s]: {'loss': 8.925003051757812}\n",
            "42500 [1134.058494142204/s]: {'loss': 8.896074295043945}\n",
            "45000 [1170.107847445511/s]: {'loss': 8.911429405212402}\n",
            "47500 [1191.308046637267/s]: {'loss': 8.795022964477539}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0001 seed=4\n",
            "0 [0.46377801305317745/s]: {'loss': 10.634908676147461}\n",
            "1 [45.47410419038326/s]: {'loss': 11.30914306640625}\n",
            "2 [46.61062831996088/s]: {'loss': 11.253250122070312}\n",
            "4 [89.6333717998034/s]: {'loss': 11.176654815673828}\n",
            "8 [166.11762842092756/s]: {'loss': 10.602644920349121}\n",
            "16 [282.20716568545/s]: {'loss': 9.972808837890625}\n",
            "32 [471.9329395218003/s]: {'loss': 9.39864444732666}\n",
            "64 [684.2048469153676/s]: {'loss': 9.152268409729004}\n",
            "128 [874.1405669440057/s]: {'loss': 8.823305130004883}\n",
            "256 [1016.0197121153053/s]: {'loss': 9.0372896194458}\n",
            "512 [1062.3250170418512/s]: {'loss': 8.881797790527344}\n",
            "1024 [1142.882196819916/s]: {'loss': 8.860554695129395}\n",
            "2048 [1181.534387726694/s]: {'loss': 8.860854148864746}\n",
            "2500 [1144.3528939522985/s]: {'loss': 8.810215950012207}\n",
            "4096 [1174.003693123176/s]: {'loss': 8.74544906616211}\n",
            "5000 [1164.6907743818153/s]: {'loss': 8.936598777770996}\n",
            "7500 [1151.1727772475801/s]: {'loss': 9.015846252441406}\n",
            "8192 [1097.5269717577019/s]: {'loss': 8.965487480163574}\n",
            "10000 [1124.8672599661677/s]: {'loss': 8.783731460571289}\n",
            "12500 [1138.5908274995415/s]: {'loss': 8.930685043334961}\n",
            "15000 [1140.3225927479434/s]: {'loss': 8.914000511169434}\n",
            "16384 [1151.675505762428/s]: {'loss': 8.888884544372559}\n",
            "17500 [1127.3373317697958/s]: {'loss': 8.769707679748535}\n",
            "20000 [1109.8738910533184/s]: {'loss': 8.920087814331055}\n",
            "22500 [1111.0999261545621/s]: {'loss': 8.711641311645508}\n",
            "25000 [1111.455364654423/s]: {'loss': 8.87855052947998}\n",
            "27500 [1110.396903440276/s]: {'loss': 8.667533874511719}\n",
            "30000 [1111.80678675713/s]: {'loss': 8.861150741577148}\n",
            "32500 [1126.6425252068666/s]: {'loss': 8.583417892456055}\n",
            "32768 [1043.8145697332131/s]: {'loss': 8.827437400817871}\n",
            "35000 [1139.701990941732/s]: {'loss': 8.781087875366211}\n",
            "37500 [1115.0736395067106/s]: {'loss': 8.802555084228516}\n",
            "40000 [981.0079034410159/s]: {'loss': 8.860677719116211}\n",
            "42500 [971.2894315159048/s]: {'loss': 8.844779014587402}\n",
            "45000 [926.0301681146191/s]: {'loss': 8.921734809875488}\n",
            "47500 [956.5061604201353/s]: {'loss': 8.801045417785645}\n",
            "====================\n",
            "Training: G1 relaxed fixed lr=0.0001 seed=5\n",
            "0 [0.37565643308453195/s]: {'loss': 11.789226531982422}\n",
            "1 [45.70452217500272/s]: {'loss': 11.03520679473877}\n",
            "2 [46.89045154221959/s]: {'loss': 10.927935600280762}\n",
            "4 [90.11384803789922/s]: {'loss': 10.912841796875}\n",
            "8 [166.11927323134807/s]: {'loss': 10.346209526062012}\n",
            "16 [287.1925776301825/s]: {'loss': 9.752218246459961}\n",
            "32 [461.21345658224806/s]: {'loss': 9.309952735900879}\n",
            "64 [675.5608528458395/s]: {'loss': 9.098663330078125}\n",
            "128 [859.2491717535138/s]: {'loss': 9.034411430358887}\n",
            "256 [1003.0245790767713/s]: {'loss': 8.901278495788574}\n",
            "512 [1073.3114261181265/s]: {'loss': 8.902068138122559}\n",
            "1024 [1139.9900667489837/s]: {'loss': 8.993924140930176}\n",
            "2048 [1055.003899736775/s]: {'loss': 8.872673034667969}\n",
            "2500 [1003.8103873232911/s]: {'loss': 8.837446212768555}\n",
            "4096 [1019.3032830044684/s]: {'loss': 8.614477157592773}\n",
            "5000 [1021.7926556201212/s]: {'loss': 9.122750282287598}\n",
            "7500 [1086.8730591108292/s]: {'loss': 8.82840347290039}\n",
            "8192 [1137.2119777859448/s]: {'loss': 8.793139457702637}\n",
            "10000 [1165.6655937886928/s]: {'loss': 8.857372283935547}\n",
            "12500 [1177.1008126963657/s]: {'loss': 8.77249813079834}\n",
            "15000 [1150.0058236417042/s]: {'loss': 8.966150283813477}\n",
            "16384 [1151.382886416482/s]: {'loss': 8.908342361450195}\n",
            "17500 [1148.8967703408296/s]: {'loss': 9.013535499572754}\n",
            "20000 [1131.3332537807096/s]: {'loss': 8.9010648727417}\n",
            "22500 [1133.375984525378/s]: {'loss': 8.819864273071289}\n",
            "25000 [1186.9480271036946/s]: {'loss': 8.96635627746582}\n",
            "27500 [1245.3423297104437/s]: {'loss': 8.857836723327637}\n",
            "30000 [1200.1890403956525/s]: {'loss': 8.868154525756836}\n",
            "32500 [1268.237837168371/s]: {'loss': 8.721179008483887}\n",
            "32768 [1180.6886746375449/s]: {'loss': 8.806111335754395}\n",
            "35000 [1271.03762313165/s]: {'loss': 8.947635650634766}\n",
            "37500 [1309.938294322863/s]: {'loss': 8.95772647857666}\n",
            "40000 [1265.1331412384689/s]: {'loss': 9.008143424987793}\n",
            "42500 [1228.08694201929/s]: {'loss': 8.657615661621094}\n",
            "45000 [1228.9806505542201/s]: {'loss': 8.819710731506348}\n",
            "47500 [1231.0855391570124/s]: {'loss': 9.05167007446289}\n"
          ]
        }
      ],
      "source": [
        "results = []\n",
        "for ex in experiments:\n",
        "  print(\"=\" * 20)\n",
        "  print(f\"Training: {ex.name}\")\n",
        "  res = ex.train(jax.random.PRNGKey(ex.metadata[\"train_seed\"]))\n",
        "  time.sleep(0.1)\n",
        "  client = jax.lib.xla_bridge.get_backend()\n",
        "  client.defragment()\n",
        "  results.append(res)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 507
        },
        "executionInfo": {
          "elapsed": 3732,
          "status": "ok",
          "timestamp": 1633450606220,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "81quVDjISQOk",
        "outputId": "6bbe356b-81b4-45b4-d57e-19a59472ea77"
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.legend.Legend at 0x7f4d1be5dcd0>"
            ]
          },
          "execution_count": 305,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 1500x700 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "plt.figure(figsize=(15,7))\n",
        "WINDOW_SIZE = 25\n",
        "for ex, res in zip(experiments, results):\n",
        "  plt.plot(np.arange(0, ex.num_steps, WINDOW_SIZE),\n",
        "           np.reshape([m[\"loss\"] for m in res.all_metrics],\n",
        "                    [-1, WINDOW_SIZE]).mean(-1),\n",
        "           \"-\" if ex.metadata[\"is_gadget_2\"] else \"--\",\n",
        "           label=ex.name,\n",
        "           color=mpl.cm.tab10(\n",
        "               (3 if ex.metadata[\"is_gadget_2\"] else 0)\n",
        "               + {\"independent\": 0, \"reverse\":1, \"fixed\":2}[ex.metadata[\"p_q_mode\"]]))\n",
        "plt.legend()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WbtpzWAtQ3pg"
      },
      "source": [
        "### Evaluate each model for each seed"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "executionInfo": {
          "elapsed": 287529,
          "status": "ok",
          "timestamp": 1633407948253,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "QqyxLaaqQ_fw",
        "outputId": "724bb610-3597-4a01-cdd7-098bd7b1a0b9"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "reverse 1\n",
            "reverse 2\n",
            "reverse 3\n",
            "reverse 4\n",
            "reverse 5\n",
            "independent 1\n",
            "independent 2\n",
            "independent 3\n",
            "independent 4\n",
            "independent 5\n",
            "fixed 1\n",
            "fixed 2\n",
            "fixed 3\n",
            "fixed 4\n",
            "fixed 5\n"
          ]
        }
      ],
      "source": [
        "scores_per_mode = {}\n",
        "# Each p_q_mode is a separate column we want data form\n",
        "for p_q_mode in [\"reverse\", \"independent\", \"fixed\"]:\n",
        "  scores_per_mode[p_q_mode] = []\n",
        "  # For each column, run five random evaluations. Each evaluation will itself\n",
        "  # average over some number of logit pairs, but we will average over enough\n",
        "  # so that the variance in this is minimal within each evaluation. For our\n",
        "  # gadgets, each evaluation represents a separate training run with a separate\n",
        "  # evaluation; for the baselines, we just redo the evaluation with a different\n",
        "  # test set.\n",
        "  for seed in [1, 2, 3, 4, 5]:\n",
        "    print(p_q_mode, seed)\n",
        "    sub_exps = []\n",
        "    sub_res = []\n",
        "    for ex, res in zip(experiments, results):\n",
        "      if ex.metadata[\"p_q_mode\"] == p_q_mode and ex.metadata[\"train_seed\"] == seed:\n",
        "        sub_exps.append(ex)\n",
        "        sub_res.append(res)\n",
        "    \n",
        "    num_pairs = 10_000 if p_q_mode is not \"fixed\" else 1\n",
        "    samples_per_pair = 1_000 if p_q_mode is not \"fixed\" else 100_000\n",
        "    eval_results = experiment_util.evaluate_all(\n",
        "        sub_exps,\n",
        "        sub_res,\n",
        "        seed=1000 + seed,\n",
        "        num_pairs=num_pairs,\n",
        "        samples_per_pair=samples_per_pair,\n",
        "        loop_size=500)\n",
        "    scores_per_mode[p_q_mode].append(eval_results)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 135
        },
        "executionInfo": {
          "elapsed": 294,
          "status": "ok",
          "timestamp": 1633407948732,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "wL-m7NTuTHkS",
        "outputId": "ce2ad19a-2a83-4108-9173-a1ea20f39c45"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;reverse&#x27;: [{&#x27;Independent&#x27;: (&#x27;average: 21.3639, inner st.dev.: +/- 20.62, errorbars: +/- 0.1217&#x27;, DeviceArray(21.363926, dtype=float32), DeviceArray(0.12168898, dtype=float32), DeviceArray(20.621542, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.6092, inner st.dev.: +/- 11.92, errorbars: +/- 0.1302&#x27;, DeviceArray(12.609152, dtype=float32), DeviceArray(0.13017197, dtype=float32), DeviceArray(11.9230175, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x2...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;reverse&#x27;: <details ><summary><span class=\"when_closed\">[{&#x27;Independent&#x27;: (&#x27;average: 21.3639, inner st.dev.: +/- 20.62, errorbars: +/- 0.1217&#x27;, DeviceArray(21.363926, dtype=float32), DeviceArray(0.12168898, dtype=float32), DeviceArray(20.621542, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.6092, inner st.dev.: +/- 11.92, errorbars: +/- 0.1302&#x27;, DeviceArray(12.609152, dtype=float32), DeviceArray(0.13017197, dtype=float32), DeviceArray(11.9230175, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 20.9642, in...</span><span class=\"when_open\">[</span></summary><ul><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 21.3639, inner st.dev.: +/- 20.62, errorbars: +/- 0.1217&#x27;, DeviceArray(21.363926, dtype=float32), DeviceArray(0.12168898, dtype=float32), DeviceArray(20.621542, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.6092, inner st.dev.: +/- 11.92, errorbars: +/- 0.1302&#x27;, DeviceArray(12.609152, dtype=float32), DeviceArray(0.13017197, dtype=float32), DeviceArray(11.9230175, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 20.9642, inn...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.3639, inner st.dev.: +/- 20.62, errorbars: +/- 0.1217&#x27;, DeviceArray(21.363926, dtype=float32), DeviceArray(0.12168898, dtype=float32), DeviceArray(20.621542, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.3639, inner st.dev.: +/- 20.62, errorbars: +/- 0.1217&#x27;,</li><li>DeviceArray(21.363926, dtype=float32),</li><li>DeviceArray(0.12168898, dtype=float32),</li><li>DeviceArray(20.621542, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 12.6092, inner st.dev.: +/- 11.92, errorbars: +/- 0.1302&#x27;, DeviceArray(12.609152, dtype=float32), DeviceArray(0.13017197, dtype=float32), DeviceArray(11.9230175, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 12.6092, inner st.dev.: +/- 11.92, errorbars: +/- 0.1302&#x27;,</li><li>DeviceArray(12.609152, dtype=float32),</li><li>DeviceArray(0.13017197, dtype=float32),</li><li>DeviceArray(11.9230175, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 20.9642, inner st.dev.: +/- 20.66, errorbars: +/- 0.1455&#x27;, DeviceArray(20.964172, dtype=float32), DeviceArray(0.14546159, dtype=float32), DeviceArray(20.66472, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 20.9642, inner st.dev.: +/- 20.66, errorbars: +/- 0.1455&#x27;,</li><li>DeviceArray(20.964172, dtype=float32),</li><li>DeviceArray(0.14546159, dtype=float32),</li><li>DeviceArray(20.66472, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 18.8843, inner st.dev.: +/- 20.34, errorbars: +/- 0.1264&#x27;, DeviceArray(18.884254, dtype=float32), DeviceArray(0.12635598, dtype=float32), DeviceArray(20.34204, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 18.8843, inner st.dev.: +/- 20.34, errorbars: +/- 0.1264&#x27;,</li><li>DeviceArray(18.884254, dtype=float32),</li><li>DeviceArray(0.12635598, dtype=float32),</li><li>DeviceArray(20.34204, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed reverse lr=0.001 seed=1&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 13.4887, inner st.dev.: +/- 13.24, errorbars: +/- 0.1334&#x27;, DeviceArray(13.488668, dtype=float32), DeviceArray(0.13344897, dtype=float32), DeviceArray(13.239265, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 13.4887, inner st.dev.: +/- 13.24, errorbars: +/- 0.1334&#x27;,</li><li>DeviceArray(13.488668, dtype=float32),</li><li>DeviceArray(0.13344897, dtype=float32),</li><li>DeviceArray(13.239265, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed reverse lr=0.0001 seed=1&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 17.3937, inner st.dev.: +/- 18.6, errorbars: +/- 0.1215&#x27;, DeviceArray(17.393736, dtype=float32), DeviceArray(0.12154795, dtype=float32), DeviceArray(18.59577, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 17.3937, inner st.dev.: +/- 18.6, errorbars: +/- 0.1215&#x27;,</li><li>DeviceArray(17.393736, dtype=float32),</li><li>DeviceArray(0.12154795, dtype=float32),</li><li>DeviceArray(18.59577, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 21.5004, inner st.dev.: +/- 20.66, errorbars: +/- 0.1224&#x27;, DeviceArray(21.50043, dtype=float32), DeviceArray(0.12240016, dtype=float32), DeviceArray(20.664627, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.6706, inner st.dev.: +/- 12.01, errorbars: +/- 0.1311&#x27;, DeviceArray(12.670625, dtype=float32), DeviceArray(0.13112766, dtype=float32), DeviceArray(12.008648, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 21.1901, inner...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.5004, inner st.dev.: +/- 20.66, errorbars: +/- 0.1224&#x27;, DeviceArray(21.50043, dtype=float32), DeviceArray(0.12240016, dtype=float32), DeviceArray(20.664627, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.5004, inner st.dev.: +/- 20.66, errorbars: +/- 0.1224&#x27;,</li><li>DeviceArray(21.50043, dtype=float32),</li><li>DeviceArray(0.12240016, dtype=float32),</li><li>DeviceArray(20.664627, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 12.6706, inner st.dev.: +/- 12.01, errorbars: +/- 0.1311&#x27;, DeviceArray(12.670625, dtype=float32), DeviceArray(0.13112766, dtype=float32), DeviceArray(12.008648, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 12.6706, inner st.dev.: +/- 12.01, errorbars: +/- 0.1311&#x27;,</li><li>DeviceArray(12.670625, dtype=float32),</li><li>DeviceArray(0.13112766, dtype=float32),</li><li>DeviceArray(12.008648, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.1901, inner st.dev.: +/- 20.72, errorbars: +/- 0.1469&#x27;, DeviceArray(21.190104, dtype=float32), DeviceArray(0.14690863, dtype=float32), DeviceArray(20.71581, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.1901, inner st.dev.: +/- 20.72, errorbars: +/- 0.1469&#x27;,</li><li>DeviceArray(21.190104, dtype=float32),</li><li>DeviceArray(0.14690863, dtype=float32),</li><li>DeviceArray(20.71581, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 18.9430, inner st.dev.: +/- 20.33, errorbars: +/- 0.1265&#x27;, DeviceArray(18.94298, dtype=float32), DeviceArray(0.12647489, dtype=float32), DeviceArray(20.331444, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 18.9430, inner st.dev.: +/- 20.33, errorbars: +/- 0.1265&#x27;,</li><li>DeviceArray(18.94298, dtype=float32),</li><li>DeviceArray(0.12647489, dtype=float32),</li><li>DeviceArray(20.331444, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed reverse lr=0.001 seed=2&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 13.5027, inner st.dev.: +/- 13.31, errorbars: +/- 0.1342&#x27;, DeviceArray(13.502703, dtype=float32), DeviceArray(0.13417827, dtype=float32), DeviceArray(13.311537, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 13.5027, inner st.dev.: +/- 13.31, errorbars: +/- 0.1342&#x27;,</li><li>DeviceArray(13.502703, dtype=float32),</li><li>DeviceArray(0.13417827, dtype=float32),</li><li>DeviceArray(13.311537, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed reverse lr=0.0001 seed=2&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.7102, inner st.dev.: +/- 17.66, errorbars: +/- 0.1224&#x27;, DeviceArray(16.710213, dtype=float32), DeviceArray(0.1224412, dtype=float32), DeviceArray(17.65919, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.7102, inner st.dev.: +/- 17.66, errorbars: +/- 0.1224&#x27;,</li><li>DeviceArray(16.710213, dtype=float32),</li><li>DeviceArray(0.1224412, dtype=float32),</li><li>DeviceArray(17.65919, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 21.3441, inner st.dev.: +/- 20.51, errorbars: +/- 0.1217&#x27;, DeviceArray(21.344065, dtype=float32), DeviceArray(0.12172244, dtype=float32), DeviceArray(20.511889, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.7015, inner st.dev.: +/- 11.99, errorbars: +/- 0.1300&#x27;, DeviceArray(12.701512, dtype=float32), DeviceArray(0.12996091, dtype=float32), DeviceArray(11.986002, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 21.1459, inne...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.3441, inner st.dev.: +/- 20.51, errorbars: +/- 0.1217&#x27;, DeviceArray(21.344065, dtype=float32), DeviceArray(0.12172244, dtype=float32), DeviceArray(20.511889, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.3441, inner st.dev.: +/- 20.51, errorbars: +/- 0.1217&#x27;,</li><li>DeviceArray(21.344065, dtype=float32),</li><li>DeviceArray(0.12172244, dtype=float32),</li><li>DeviceArray(20.511889, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 12.7015, inner st.dev.: +/- 11.99, errorbars: +/- 0.1300&#x27;, DeviceArray(12.701512, dtype=float32), DeviceArray(0.12996091, dtype=float32), DeviceArray(11.986002, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 12.7015, inner st.dev.: +/- 11.99, errorbars: +/- 0.1300&#x27;,</li><li>DeviceArray(12.701512, dtype=float32),</li><li>DeviceArray(0.12996091, dtype=float32),</li><li>DeviceArray(11.986002, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.1459, inner st.dev.: +/- 20.64, errorbars: +/- 0.1459&#x27;, DeviceArray(21.145863, dtype=float32), DeviceArray(0.14590238, dtype=float32), DeviceArray(20.639002, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.1459, inner st.dev.: +/- 20.64, errorbars: +/- 0.1459&#x27;,</li><li>DeviceArray(21.145863, dtype=float32),</li><li>DeviceArray(0.14590238, dtype=float32),</li><li>DeviceArray(20.639002, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 18.9004, inner st.dev.: +/- 20.27, errorbars: +/- 0.1257&#x27;, DeviceArray(18.900438, dtype=float32), DeviceArray(0.125733, dtype=float32), DeviceArray(20.268345, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 18.9004, inner st.dev.: +/- 20.27, errorbars: +/- 0.1257&#x27;,</li><li>DeviceArray(18.900438, dtype=float32),</li><li>DeviceArray(0.125733, dtype=float32),</li><li>DeviceArray(20.268345, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed reverse lr=0.001 seed=3&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 13.5999, inner st.dev.: +/- 13.33, errorbars: +/- 0.1329&#x27;, DeviceArray(13.599887, dtype=float32), DeviceArray(0.13285685, dtype=float32), DeviceArray(13.329544, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 13.5999, inner st.dev.: +/- 13.33, errorbars: +/- 0.1329&#x27;,</li><li>DeviceArray(13.599887, dtype=float32),</li><li>DeviceArray(0.13285685, dtype=float32),</li><li>DeviceArray(13.329544, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed reverse lr=0.0001 seed=3&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.1265, inner st.dev.: +/- 17.15, errorbars: +/- 0.1230&#x27;, DeviceArray(16.126501, dtype=float32), DeviceArray(0.12303647, dtype=float32), DeviceArray(17.154503, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.1265, inner st.dev.: +/- 17.15, errorbars: +/- 0.1230&#x27;,</li><li>DeviceArray(16.126501, dtype=float32),</li><li>DeviceArray(0.12303647, dtype=float32),</li><li>DeviceArray(17.154503, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 21.2548, inner st.dev.: +/- 20.53, errorbars: +/- 0.1200&#x27;, DeviceArray(21.254772, dtype=float32), DeviceArray(0.11998961, dtype=float32), DeviceArray(20.525291, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.4810, inner st.dev.: +/- 11.91, errorbars: +/- 0.1279&#x27;, DeviceArray(12.481017, dtype=float32), DeviceArray(0.12794071, dtype=float32), DeviceArray(11.910197, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 20.8856, inne...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.2548, inner st.dev.: +/- 20.53, errorbars: +/- 0.1200&#x27;, DeviceArray(21.254772, dtype=float32), DeviceArray(0.11998961, dtype=float32), DeviceArray(20.525291, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.2548, inner st.dev.: +/- 20.53, errorbars: +/- 0.1200&#x27;,</li><li>DeviceArray(21.254772, dtype=float32),</li><li>DeviceArray(0.11998961, dtype=float32),</li><li>DeviceArray(20.525291, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 12.4810, inner st.dev.: +/- 11.91, errorbars: +/- 0.1279&#x27;, DeviceArray(12.481017, dtype=float32), DeviceArray(0.12794071, dtype=float32), DeviceArray(11.910197, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 12.4810, inner st.dev.: +/- 11.91, errorbars: +/- 0.1279&#x27;,</li><li>DeviceArray(12.481017, dtype=float32),</li><li>DeviceArray(0.12794071, dtype=float32),</li><li>DeviceArray(11.910197, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 20.8856, inner st.dev.: +/- 20.56, errorbars: +/- 0.1432&#x27;, DeviceArray(20.885592, dtype=float32), DeviceArray(0.1432301, dtype=float32), DeviceArray(20.559101, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 20.8856, inner st.dev.: +/- 20.56, errorbars: +/- 0.1432&#x27;,</li><li>DeviceArray(20.885592, dtype=float32),</li><li>DeviceArray(0.1432301, dtype=float32),</li><li>DeviceArray(20.559101, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 18.7396, inner st.dev.: +/- 20.24, errorbars: +/- 0.1239&#x27;, DeviceArray(18.739632, dtype=float32), DeviceArray(0.12392923, dtype=float32), DeviceArray(20.236933, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 18.7396, inner st.dev.: +/- 20.24, errorbars: +/- 0.1239&#x27;,</li><li>DeviceArray(18.739632, dtype=float32),</li><li>DeviceArray(0.12392923, dtype=float32),</li><li>DeviceArray(20.236933, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed reverse lr=0.001 seed=4&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 13.3833, inner st.dev.: +/- 13.27, errorbars: +/- 0.1309&#x27;, DeviceArray(13.3832655, dtype=float32), DeviceArray(0.13088219, dtype=float32), DeviceArray(13.269712, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 13.3833, inner st.dev.: +/- 13.27, errorbars: +/- 0.1309&#x27;,</li><li>DeviceArray(13.3832655, dtype=float32),</li><li>DeviceArray(0.13088219, dtype=float32),</li><li>DeviceArray(13.269712, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed reverse lr=0.0001 seed=4&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.2885, inner st.dev.: +/- 17.37, errorbars: +/- 0.1199&#x27;, DeviceArray(16.288496, dtype=float32), DeviceArray(0.1198744, dtype=float32), DeviceArray(17.368156, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.2885, inner st.dev.: +/- 17.37, errorbars: +/- 0.1199&#x27;,</li><li>DeviceArray(16.288496, dtype=float32),</li><li>DeviceArray(0.1198744, dtype=float32),</li><li>DeviceArray(17.368156, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 21.2223, inner st.dev.: +/- 20.57, errorbars: +/- 0.1205&#x27;, DeviceArray(21.222311, dtype=float32), DeviceArray(0.12047369, dtype=float32), DeviceArray(20.568224, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 12.4795, inner st.dev.: +/- 11.97, errorbars: +/- 0.1281&#x27;, DeviceArray(12.479548, dtype=float32), DeviceArray(0.12808156, dtype=float32), DeviceArray(11.974955, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 20.8010, inne...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 21.2223, inner st.dev.: +/- 20.57, errorbars: +/- 0.1205&#x27;, DeviceArray(21.222311, dtype=float32), DeviceArray(0.12047369, dtype=float32), DeviceArray(20.568224, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 21.2223, inner st.dev.: +/- 20.57, errorbars: +/- 0.1205&#x27;,</li><li>DeviceArray(21.222311, dtype=float32),</li><li>DeviceArray(0.12047369, dtype=float32),</li><li>DeviceArray(20.568224, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 12.4795, inner st.dev.: +/- 11.97, errorbars: +/- 0.1281&#x27;, DeviceArray(12.479548, dtype=float32), DeviceArray(0.12808156, dtype=float32), DeviceArray(11.974955, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 12.4795, inner st.dev.: +/- 11.97, errorbars: +/- 0.1281&#x27;,</li><li>DeviceArray(12.479548, dtype=float32),</li><li>DeviceArray(0.12808156, dtype=float32),</li><li>DeviceArray(11.974955, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 20.8010, inner st.dev.: +/- 20.64, errorbars: +/- 0.1444&#x27;, DeviceArray(20.800993, dtype=float32), DeviceArray(0.1444064, dtype=float32), DeviceArray(20.641071, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 20.8010, inner st.dev.: +/- 20.64, errorbars: +/- 0.1444&#x27;,</li><li>DeviceArray(20.800993, dtype=float32),</li><li>DeviceArray(0.1444064, dtype=float32),</li><li>DeviceArray(20.641071, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 18.7304, inner st.dev.: +/- 20.29, errorbars: +/- 0.1247&#x27;, DeviceArray(18.730356, dtype=float32), DeviceArray(0.12467106, dtype=float32), DeviceArray(20.291777, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 18.7304, inner st.dev.: +/- 20.29, errorbars: +/- 0.1247&#x27;,</li><li>DeviceArray(18.730356, dtype=float32),</li><li>DeviceArray(0.12467106, dtype=float32),</li><li>DeviceArray(20.291777, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed reverse lr=0.001 seed=5&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 13.3682, inner st.dev.: +/- 13.32, errorbars: +/- 0.1315&#x27;, DeviceArray(13.3682375, dtype=float32), DeviceArray(0.13145773, dtype=float32), DeviceArray(13.31935, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 13.3682, inner st.dev.: +/- 13.32, errorbars: +/- 0.1315&#x27;,</li><li>DeviceArray(13.3682375, dtype=float32),</li><li>DeviceArray(0.13145773, dtype=float32),</li><li>DeviceArray(13.31935, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed reverse lr=0.0001 seed=5&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.8468, inner st.dev.: +/- 18.43, errorbars: +/- 0.1220&#x27;, DeviceArray(16.84675, dtype=float32), DeviceArray(0.121962, dtype=float32), DeviceArray(18.432278, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.8468, inner st.dev.: +/- 18.43, errorbars: +/- 0.1220&#x27;,</li><li>DeviceArray(16.84675, dtype=float32),</li><li>DeviceArray(0.121962, dtype=float32),</li><li>DeviceArray(18.432278, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li></ul>]</details></li><li>&#x27;independent&#x27;: <details ><summary><span class=\"when_closed\">[{&#x27;Independent&#x27;: (&#x27;average: 16.5083, inner st.dev.: +/- 18.05, errorbars: +/- 0.0724&#x27;, DeviceArray(16.508272, dtype=float32), DeviceArray(0.07237832, dtype=float32), DeviceArray(18.05484, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 8.1507, inner st.dev.: +/- 9.355, errorbars: +/- 0.0720&#x27;, DeviceArray(8.150713, dtype=float32), DeviceArray(0.07199745, dtype=float32), DeviceArray(9.354581, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 15.7011, inner s...</span><span class=\"when_open\">[</span></summary><ul><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 16.5083, inner st.dev.: +/- 18.05, errorbars: +/- 0.0724&#x27;, DeviceArray(16.508272, dtype=float32), DeviceArray(0.07237832, dtype=float32), DeviceArray(18.05484, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 8.1507, inner st.dev.: +/- 9.355, errorbars: +/- 0.0720&#x27;, DeviceArray(8.150713, dtype=float32), DeviceArray(0.07199745, dtype=float32), DeviceArray(9.354581, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 15.7011, inner st...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.5083, inner st.dev.: +/- 18.05, errorbars: +/- 0.0724&#x27;, DeviceArray(16.508272, dtype=float32), DeviceArray(0.07237832, dtype=float32), DeviceArray(18.05484, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.5083, inner st.dev.: +/- 18.05, errorbars: +/- 0.0724&#x27;,</li><li>DeviceArray(16.508272, dtype=float32),</li><li>DeviceArray(0.07237832, dtype=float32),</li><li>DeviceArray(18.05484, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.1507, inner st.dev.: +/- 9.355, errorbars: +/- 0.0720&#x27;, DeviceArray(8.150713, dtype=float32), DeviceArray(0.07199745, dtype=float32), DeviceArray(9.354581, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.1507, inner st.dev.: +/- 9.355, errorbars: +/- 0.0720&#x27;,</li><li>DeviceArray(8.150713, dtype=float32),</li><li>DeviceArray(0.07199745, dtype=float32),</li><li>DeviceArray(9.354581, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 15.7011, inner st.dev.: +/- 17.91, errorbars: +/- 0.0884&#x27;, DeviceArray(15.701109, dtype=float32), DeviceArray(0.08839431, dtype=float32), DeviceArray(17.908134, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 15.7011, inner st.dev.: +/- 17.91, errorbars: +/- 0.0884&#x27;,</li><li>DeviceArray(15.701109, dtype=float32),</li><li>DeviceArray(0.08839431, dtype=float32),</li><li>DeviceArray(17.908134, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0277, inner st.dev.: +/- 17.41, errorbars: +/- 0.0734&#x27;, DeviceArray(14.027739, dtype=float32), DeviceArray(0.07340575, dtype=float32), DeviceArray(17.409155, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0277, inner st.dev.: +/- 17.41, errorbars: +/- 0.0734&#x27;,</li><li>DeviceArray(14.027739, dtype=float32),</li><li>DeviceArray(0.07340575, dtype=float32),</li><li>DeviceArray(17.409155, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed independent lr=0.001 seed=1&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.7857, inner st.dev.: +/- 10.55, errorbars: +/- 0.0721&#x27;, DeviceArray(8.785703, dtype=float32), DeviceArray(0.072105, dtype=float32), DeviceArray(10.547982, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.7857, inner st.dev.: +/- 10.55, errorbars: +/- 0.0721&#x27;,</li><li>DeviceArray(8.785703, dtype=float32),</li><li>DeviceArray(0.072105, dtype=float32),</li><li>DeviceArray(10.547982, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed independent lr=0.0001 seed=1&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0397, inner st.dev.: +/- 17.33, errorbars: +/- 0.0725&#x27;, DeviceArray(14.039748, dtype=float32), DeviceArray(0.07247224, dtype=float32), DeviceArray(17.33135, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0397, inner st.dev.: +/- 17.33, errorbars: +/- 0.0725&#x27;,</li><li>DeviceArray(14.039748, dtype=float32),</li><li>DeviceArray(0.07247224, dtype=float32),</li><li>DeviceArray(17.33135, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 16.5185, inner st.dev.: +/- 18.04, errorbars: +/- 0.0724&#x27;, DeviceArray(16.518478, dtype=float32), DeviceArray(0.07243519, dtype=float32), DeviceArray(18.040678, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 8.1444, inner st.dev.: +/- 9.26, errorbars: +/- 0.0723&#x27;, DeviceArray(8.144406, dtype=float32), DeviceArray(0.07233289, dtype=float32), DeviceArray(9.260457, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 15.7828, inner st...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.5185, inner st.dev.: +/- 18.04, errorbars: +/- 0.0724&#x27;, DeviceArray(16.518478, dtype=float32), DeviceArray(0.07243519, dtype=float32), DeviceArray(18.040678, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.5185, inner st.dev.: +/- 18.04, errorbars: +/- 0.0724&#x27;,</li><li>DeviceArray(16.518478, dtype=float32),</li><li>DeviceArray(0.07243519, dtype=float32),</li><li>DeviceArray(18.040678, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.1444, inner st.dev.: +/- 9.26, errorbars: +/- 0.0723&#x27;, DeviceArray(8.144406, dtype=float32), DeviceArray(0.07233289, dtype=float32), DeviceArray(9.260457, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.1444, inner st.dev.: +/- 9.26, errorbars: +/- 0.0723&#x27;,</li><li>DeviceArray(8.144406, dtype=float32),</li><li>DeviceArray(0.07233289, dtype=float32),</li><li>DeviceArray(9.260457, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 15.7828, inner st.dev.: +/- 17.89, errorbars: +/- 0.0887&#x27;, DeviceArray(15.782795, dtype=float32), DeviceArray(0.08872265, dtype=float32), DeviceArray(17.891218, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 15.7828, inner st.dev.: +/- 17.89, errorbars: +/- 0.0887&#x27;,</li><li>DeviceArray(15.782795, dtype=float32),</li><li>DeviceArray(0.08872265, dtype=float32),</li><li>DeviceArray(17.891218, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0247, inner st.dev.: +/- 17.37, errorbars: +/- 0.0732&#x27;, DeviceArray(14.024696, dtype=float32), DeviceArray(0.07315344, dtype=float32), DeviceArray(17.372143, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0247, inner st.dev.: +/- 17.37, errorbars: +/- 0.0732&#x27;,</li><li>DeviceArray(14.024696, dtype=float32),</li><li>DeviceArray(0.07315344, dtype=float32),</li><li>DeviceArray(17.372143, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed independent lr=0.001 seed=2&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.7584, inner st.dev.: +/- 10.43, errorbars: +/- 0.0723&#x27;, DeviceArray(8.758417, dtype=float32), DeviceArray(0.07231494, dtype=float32), DeviceArray(10.42747, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.7584, inner st.dev.: +/- 10.43, errorbars: +/- 0.0723&#x27;,</li><li>DeviceArray(8.758417, dtype=float32),</li><li>DeviceArray(0.07231494, dtype=float32),</li><li>DeviceArray(10.42747, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed independent lr=0.0001 seed=2&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0517, inner st.dev.: +/- 17.26, errorbars: +/- 0.0725&#x27;, DeviceArray(14.051689, dtype=float32), DeviceArray(0.07250919, dtype=float32), DeviceArray(17.255306, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0517, inner st.dev.: +/- 17.26, errorbars: +/- 0.0725&#x27;,</li><li>DeviceArray(14.051689, dtype=float32),</li><li>DeviceArray(0.07250919, dtype=float32),</li><li>DeviceArray(17.255306, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 16.4980, inner st.dev.: +/- 18.02, errorbars: +/- 0.0719&#x27;, DeviceArray(16.497957, dtype=float32), DeviceArray(0.07191302, dtype=float32), DeviceArray(18.018637, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 8.1259, inner st.dev.: +/- 9.256, errorbars: +/- 0.0721&#x27;, DeviceArray(8.125899, dtype=float32), DeviceArray(0.07208291, dtype=float32), DeviceArray(9.256451, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 15.6750, inner s...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.4980, inner st.dev.: +/- 18.02, errorbars: +/- 0.0719&#x27;, DeviceArray(16.497957, dtype=float32), DeviceArray(0.07191302, dtype=float32), DeviceArray(18.018637, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.4980, inner st.dev.: +/- 18.02, errorbars: +/- 0.0719&#x27;,</li><li>DeviceArray(16.497957, dtype=float32),</li><li>DeviceArray(0.07191302, dtype=float32),</li><li>DeviceArray(18.018637, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.1259, inner st.dev.: +/- 9.256, errorbars: +/- 0.0721&#x27;, DeviceArray(8.125899, dtype=float32), DeviceArray(0.07208291, dtype=float32), DeviceArray(9.256451, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.1259, inner st.dev.: +/- 9.256, errorbars: +/- 0.0721&#x27;,</li><li>DeviceArray(8.125899, dtype=float32),</li><li>DeviceArray(0.07208291, dtype=float32),</li><li>DeviceArray(9.256451, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 15.6750, inner st.dev.: +/- 17.89, errorbars: +/- 0.0876&#x27;, DeviceArray(15.674964, dtype=float32), DeviceArray(0.08761985, dtype=float32), DeviceArray(17.890633, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 15.6750, inner st.dev.: +/- 17.89, errorbars: +/- 0.0876&#x27;,</li><li>DeviceArray(15.674964, dtype=float32),</li><li>DeviceArray(0.08761985, dtype=float32),</li><li>DeviceArray(17.890633, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0122, inner st.dev.: +/- 17.36, errorbars: +/- 0.0725&#x27;, DeviceArray(14.012157, dtype=float32), DeviceArray(0.07254427, dtype=float32), DeviceArray(17.362978, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0122, inner st.dev.: +/- 17.36, errorbars: +/- 0.0725&#x27;,</li><li>DeviceArray(14.012157, dtype=float32),</li><li>DeviceArray(0.07254427, dtype=float32),</li><li>DeviceArray(17.362978, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed independent lr=0.001 seed=3&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.7388, inner st.dev.: +/- 10.44, errorbars: +/- 0.0724&#x27;, DeviceArray(8.7387905, dtype=float32), DeviceArray(0.07240396, dtype=float32), DeviceArray(10.435396, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.7388, inner st.dev.: +/- 10.44, errorbars: +/- 0.0724&#x27;,</li><li>DeviceArray(8.7387905, dtype=float32),</li><li>DeviceArray(0.07240396, dtype=float32),</li><li>DeviceArray(10.435396, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed independent lr=0.0001 seed=3&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0592, inner st.dev.: +/- 17.23, errorbars: +/- 0.0718&#x27;, DeviceArray(14.0592165, dtype=float32), DeviceArray(0.07180684, dtype=float32), DeviceArray(17.232843, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0592, inner st.dev.: +/- 17.23, errorbars: +/- 0.0718&#x27;,</li><li>DeviceArray(14.0592165, dtype=float32),</li><li>DeviceArray(0.07180684, dtype=float32),</li><li>DeviceArray(17.232843, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 16.5053, inner st.dev.: +/- 18.08, errorbars: +/- 0.0728&#x27;, DeviceArray(16.50528, dtype=float32), DeviceArray(0.07281687, dtype=float32), DeviceArray(18.077633, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 8.1438, inner st.dev.: +/- 9.36, errorbars: +/- 0.0726&#x27;, DeviceArray(8.14375, dtype=float32), DeviceArray(0.07259623, dtype=float32), DeviceArray(9.360439, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 15.7532, inner st.d...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.5053, inner st.dev.: +/- 18.08, errorbars: +/- 0.0728&#x27;, DeviceArray(16.50528, dtype=float32), DeviceArray(0.07281687, dtype=float32), DeviceArray(18.077633, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.5053, inner st.dev.: +/- 18.08, errorbars: +/- 0.0728&#x27;,</li><li>DeviceArray(16.50528, dtype=float32),</li><li>DeviceArray(0.07281687, dtype=float32),</li><li>DeviceArray(18.077633, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.1438, inner st.dev.: +/- 9.36, errorbars: +/- 0.0726&#x27;, DeviceArray(8.14375, dtype=float32), DeviceArray(0.07259623, dtype=float32), DeviceArray(9.360439, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.1438, inner st.dev.: +/- 9.36, errorbars: +/- 0.0726&#x27;,</li><li>DeviceArray(8.14375, dtype=float32),</li><li>DeviceArray(0.07259623, dtype=float32),</li><li>DeviceArray(9.360439, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 15.7532, inner st.dev.: +/- 17.97, errorbars: +/- 0.0884&#x27;, DeviceArray(15.753175, dtype=float32), DeviceArray(0.08844307, dtype=float32), DeviceArray(17.970547, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 15.7532, inner st.dev.: +/- 17.97, errorbars: +/- 0.0884&#x27;,</li><li>DeviceArray(15.753175, dtype=float32),</li><li>DeviceArray(0.08844307, dtype=float32),</li><li>DeviceArray(17.970547, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0270, inner st.dev.: +/- 17.45, errorbars: +/- 0.0736&#x27;, DeviceArray(14.026989, dtype=float32), DeviceArray(0.07357304, dtype=float32), DeviceArray(17.445452, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0270, inner st.dev.: +/- 17.45, errorbars: +/- 0.0736&#x27;,</li><li>DeviceArray(14.026989, dtype=float32),</li><li>DeviceArray(0.07357304, dtype=float32),</li><li>DeviceArray(17.445452, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed independent lr=0.001 seed=4&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.7900, inner st.dev.: +/- 10.58, errorbars: +/- 0.0728&#x27;, DeviceArray(8.790046, dtype=float32), DeviceArray(0.07283345, dtype=float32), DeviceArray(10.584379, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.7900, inner st.dev.: +/- 10.58, errorbars: +/- 0.0728&#x27;,</li><li>DeviceArray(8.790046, dtype=float32),</li><li>DeviceArray(0.07283345, dtype=float32),</li><li>DeviceArray(10.584379, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed independent lr=0.0001 seed=4&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0333, inner st.dev.: +/- 17.33, errorbars: +/- 0.0730&#x27;, DeviceArray(14.033333, dtype=float32), DeviceArray(0.07300204, dtype=float32), DeviceArray(17.331, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0333, inner st.dev.: +/- 17.33, errorbars: +/- 0.0730&#x27;,</li><li>DeviceArray(14.033333, dtype=float32),</li><li>DeviceArray(0.07300204, dtype=float32),</li><li>DeviceArray(17.331, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 16.5197, inner st.dev.: +/- 18.06, errorbars: +/- 0.0733&#x27;, DeviceArray(16.519663, dtype=float32), DeviceArray(0.07327545, dtype=float32), DeviceArray(18.061222, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 8.1194, inner st.dev.: +/- 9.279, errorbars: +/- 0.0734&#x27;, DeviceArray(8.119367, dtype=float32), DeviceArray(0.07342999, dtype=float32), DeviceArray(9.278698, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 15.6836, inner s...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 16.5197, inner st.dev.: +/- 18.06, errorbars: +/- 0.0733&#x27;, DeviceArray(16.519663, dtype=float32), DeviceArray(0.07327545, dtype=float32), DeviceArray(18.061222, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 16.5197, inner st.dev.: +/- 18.06, errorbars: +/- 0.0733&#x27;,</li><li>DeviceArray(16.519663, dtype=float32),</li><li>DeviceArray(0.07327545, dtype=float32),</li><li>DeviceArray(18.061222, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.1194, inner st.dev.: +/- 9.279, errorbars: +/- 0.0734&#x27;, DeviceArray(8.119367, dtype=float32), DeviceArray(0.07342999, dtype=float32), DeviceArray(9.278698, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.1194, inner st.dev.: +/- 9.279, errorbars: +/- 0.0734&#x27;,</li><li>DeviceArray(8.119367, dtype=float32),</li><li>DeviceArray(0.07342999, dtype=float32),</li><li>DeviceArray(9.278698, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 15.6836, inner st.dev.: +/- 17.92, errorbars: +/- 0.0883&#x27;, DeviceArray(15.683562, dtype=float32), DeviceArray(0.0882907, dtype=float32), DeviceArray(17.918564, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 15.6836, inner st.dev.: +/- 17.92, errorbars: +/- 0.0883&#x27;,</li><li>DeviceArray(15.683562, dtype=float32),</li><li>DeviceArray(0.0882907, dtype=float32),</li><li>DeviceArray(17.918564, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0308, inner st.dev.: +/- 17.41, errorbars: +/- 0.0740&#x27;, DeviceArray(14.030783, dtype=float32), DeviceArray(0.07404755, dtype=float32), DeviceArray(17.410183, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0308, inner st.dev.: +/- 17.41, errorbars: +/- 0.0740&#x27;,</li><li>DeviceArray(14.030783, dtype=float32),</li><li>DeviceArray(0.07404755, dtype=float32),</li><li>DeviceArray(17.410183, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed independent lr=0.001 seed=5&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 8.7195, inner st.dev.: +/- 10.41, errorbars: +/- 0.0737&#x27;, DeviceArray(8.719542, dtype=float32), DeviceArray(0.0736623, dtype=float32), DeviceArray(10.407764, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 8.7195, inner st.dev.: +/- 10.41, errorbars: +/- 0.0737&#x27;,</li><li>DeviceArray(8.719542, dtype=float32),</li><li>DeviceArray(0.0736623, dtype=float32),</li><li>DeviceArray(10.407764, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed independent lr=0.0001 seed=5&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 14.0687, inner st.dev.: +/- 17.24, errorbars: +/- 0.0733&#x27;, DeviceArray(14.068659, dtype=float32), DeviceArray(0.07332011, dtype=float32), DeviceArray(17.23859, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 14.0687, inner st.dev.: +/- 17.24, errorbars: +/- 0.0733&#x27;,</li><li>DeviceArray(14.068659, dtype=float32),</li><li>DeviceArray(0.07332011, dtype=float32),</li><li>DeviceArray(17.23859, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li></ul>]</details></li><li>&#x27;fixed&#x27;: <details ><summary><span class=\"when_closed\">[{&#x27;Independent&#x27;: (&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 7.4976, inner st.dev.: +/- 8.42...</span><span class=\"when_open\">[</span></summary><ul><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 7.4976, inner st.dev.: +/- 8.426...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(10.153068, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(12.386539, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(2.879294, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.470504, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;, DeviceArray(7.497608, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(8.425566, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.497608, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(8.425566, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.0903, inner st.dev.: +/- 11.12, errorbars: +/- 0.0000&#x27;, DeviceArray(7.09031, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(11.1216755, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.0903, inner st.dev.: +/- 11.12, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.09031, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(11.1216755, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed fixed lr=1e-05 seed=1&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 3.1461, inner st.dev.: +/- 3.805, errorbars: +/- 0.0000&#x27;, DeviceArray(3.1460903, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.8048272, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 3.1461, inner st.dev.: +/- 3.805, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(3.1460903, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.8048272, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed fixed lr=0.0001 seed=1&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 4.8308, inner st.dev.: +/- 5.834, errorbars: +/- 0.0000&#x27;, DeviceArray(4.83077, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(5.8336105, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 4.8308, inner st.dev.: +/- 5.834, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(4.83077, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(5.8336105, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 7.4976, inner st.dev.: +/- 8.426...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(10.153068, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(12.386539, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(2.879294, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.470504, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;, DeviceArray(7.497608, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(8.425566, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.497608, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(8.425566, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.0558, inner st.dev.: +/- 11.02, errorbars: +/- 0.0000&#x27;, DeviceArray(7.05576, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(11.024198, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.0558, inner st.dev.: +/- 11.02, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.05576, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(11.024198, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed fixed lr=1e-05 seed=2&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 3.1316, inner st.dev.: +/- 3.796, errorbars: +/- 0.0000&#x27;, DeviceArray(3.1315596, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.7957344, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 3.1316, inner st.dev.: +/- 3.796, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(3.1315596, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.7957344, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed fixed lr=0.0001 seed=2&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 4.8122, inner st.dev.: +/- 5.317, errorbars: +/- 0.0000&#x27;, DeviceArray(4.81216, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(5.317307, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 4.8122, inner st.dev.: +/- 5.317, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(4.81216, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(5.317307, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 7.4976, inner st.dev.: +/- 8.426...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(10.153068, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(12.386539, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(2.879294, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.470504, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;, DeviceArray(7.497608, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(8.425566, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.497608, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(8.425566, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.1221, inner st.dev.: +/- 11.18, errorbars: +/- 0.0000&#x27;, DeviceArray(7.1221094, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(11.181316, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.1221, inner st.dev.: +/- 11.18, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.1221094, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(11.181316, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed fixed lr=1e-05 seed=3&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 3.1257, inner st.dev.: +/- 3.806, errorbars: +/- 0.0000&#x27;, DeviceArray(3.1257203, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.8064022, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 3.1257, inner st.dev.: +/- 3.806, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(3.1257203, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.8064022, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed fixed lr=0.0001 seed=3&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 4.7809, inner st.dev.: +/- 5.415, errorbars: +/- 0.0000&#x27;, DeviceArray(4.7808704, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(5.4149504, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 4.7809, inner st.dev.: +/- 5.415, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(4.7808704, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(5.4149504, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 7.4976, inner st.dev.: +/- 8.426...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(10.153068, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(12.386539, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(2.879294, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.470504, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;, DeviceArray(7.497608, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(8.425566, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.497608, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(8.425566, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.0709, inner st.dev.: +/- 11.04, errorbars: +/- 0.0000&#x27;, DeviceArray(7.07087, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(11.044176, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.0709, inner st.dev.: +/- 11.04, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.07087, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(11.044176, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed fixed lr=1e-05 seed=4&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 3.1410, inner st.dev.: +/- 3.791, errorbars: +/- 0.0000&#x27;, DeviceArray(3.1410398, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.7909806, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 3.1410, inner st.dev.: +/- 3.791, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(3.1410398, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.7909806, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed fixed lr=0.0001 seed=4&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 4.2791, inner st.dev.: +/- 5.127, errorbars: +/- 0.0000&#x27;, DeviceArray(4.27908, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(5.127274, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 4.2791, inner st.dev.: +/- 5.127, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(4.27908, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(5.127274, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li><li><details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: (&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32)), &#x27;ICDF&#x27;: (&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32)), &#x27;ICDF (permuted)&#x27;: (&#x27;average: 7.4976, inner st.dev.: +/- 8.426...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;, DeviceArray(10.153068, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(12.386539, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(10.153068, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(12.386539, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;, DeviceArray(2.879294, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.470504, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(2.879294, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.470504, dtype=float32),</li></ul>)</details></li><li>&#x27;ICDF (permuted)&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;, DeviceArray(7.497608, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(8.425566, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.497608, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(8.425566, dtype=float32),</li></ul>)</details></li><li>&#x27;Gumbel-max&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 7.1116, inner st.dev.: +/- 11.09, errorbars: +/- 0.0000&#x27;, DeviceArray(7.1116104, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(11.094126, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 7.1116, inner st.dev.: +/- 11.09, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(7.1116104, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(11.094126, dtype=float32),</li></ul>)</details></li><li>&#x27;G2 relaxed fixed lr=1e-05 seed=5&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 3.1528, inner st.dev.: +/- 3.808, errorbars: +/- 0.0000&#x27;, DeviceArray(3.1528099, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(3.8084095, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 3.1528, inner st.dev.: +/- 3.808, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(3.1528099, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(3.8084095, dtype=float32),</li></ul>)</details></li><li>&#x27;G1 relaxed fixed lr=0.0001 seed=5&#x27;: <details ><summary><span class=\"when_closed\">(&#x27;average: 4.7627, inner st.dev.: +/- 5.258, errorbars: +/- 0.0000&#x27;, DeviceArray(4.76273, dtype=float32), DeviceArray(0., dtype=float32), DeviceArray(5.257814, dtype=float32))</span><span class=\"when_open\">(</span></summary><ul><li>&#x27;average: 4.7627, inner st.dev.: +/- 5.258, errorbars: +/- 0.0000&#x27;,</li><li>DeviceArray(4.76273, dtype=float32),</li><li>DeviceArray(0., dtype=float32),</li><li>DeviceArray(5.257814, dtype=float32),</li></ul>)</details></li></ul>}</details>,</li></ul>]</details></li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'reverse': [{'Independent': ('average: 21.3639, inner st.dev.: +/- 20.62, errorbars: +/- 0.1217',\n",
              "                              DeviceArray(21.363926, dtype=float32),\n",
              "                              DeviceArray(0.12168898, dtype=float32),\n",
              "                              DeviceArray(20.621542, dtype=float32)),\n",
              "              'ICDF': ('average: 12.6092, inner st.dev.: +/- 11.92, errorbars: +/- 0.1302',\n",
              "                       DeviceArray(12.609152, dtype=float32),\n",
              "                       DeviceArray(0.13017197, dtype=float32),\n",
              "                       DeviceArray(11.9230175, dtype=float32)),\n",
              "              'ICDF (permuted)': ('average: 20.9642, inner st.dev.: +/- 20.66, errorbars: +/- 0.1455',\n",
              "                                  DeviceArray(20.964172, dtype=float32),\n",
              "                                  DeviceArray(0.14546159, dtype=float32),\n",
              "                                  DeviceArray(20.66472, dtype=float32)),\n",
              "              'Gumbel-max': ('average: 18.8843, inner st.dev.: +/- 20.34, errorbars: +/- 0.1264',\n",
              "                             DeviceArray(18.884254, dtype=float32),\n",
              "                             DeviceArray(0.12635598, dtype=float32),\n",
              "                             DeviceArray(20.34204, dtype=float32)),\n",
              "              'G2 relaxed reverse lr=0.001 seed=1':\n",
              "                ('average: 13.4887, inner st.dev.: +/- 13.24, errorbars: +/- 0.1334',\n",
              "                 DeviceArray(13.488668, dtype=float32),\n",
              "                 DeviceArray(0.13344897, dtype=float32),\n",
              "                 DeviceArray(13.239265, dtype=float32)),\n",
              "              'G1 relaxed reverse lr=0.0001 seed=1':\n",
              "                ('average: 17.3937, inner st.dev.: +/- 18.6, errorbars: +/- 0.1215',\n",
              "                 DeviceArray(17.393736, dtype=float32),\n",
              "                 DeviceArray(0.12154795, dtype=float32),\n",
              "                 DeviceArray(18.59577, dtype=float32))},\n",
              "             {'Independent': ('average: 21.5004, inner st.dev.: +/- 20.66, errorbars: +/- 0.1224',\n",
              "                              DeviceArray(21.50043, dtype=float32),\n",
              "                              DeviceArray(0.12240016, dtype=float32),\n",
              "                              DeviceArray(20.664627, dtype=float32)),\n",
              "              'ICDF': ('average: 12.6706, inner st.dev.: +/- 12.01, errorbars: +/- 0.1311',\n",
              "                       DeviceArray(12.670625, dtype=float32),\n",
              "                       DeviceArray(0.13112766, dtype=float32),\n",
              "                       DeviceArray(12.008648, dtype=float32)),\n",
              "              'ICDF (permuted)': ('average: 21.1901, inner st.dev.: +/- 20.72, errorbars: +/- 0.1469',\n",
              "                                  DeviceArray(21.190104, dtype=float32),\n",
              "                                  DeviceArray(0.14690863, dtype=float32),\n",
              "                                  DeviceArray(20.71581, dtype=float32)),\n",
              "              'Gumbel-max': ('average: 18.9430, inner st.dev.: +/- 20.33, errorbars: +/- 0.1265',\n",
              "                             DeviceArray(18.94298, dtype=float32),\n",
              "                             DeviceArray(0.12647489, dtype=float32),\n",
              "                             DeviceArray(20.331444, dtype=float32)),\n",
              "              'G2 relaxed reverse lr=0.001 seed=2':\n",
              "                ('average: 13.5027, inner st.dev.: +/- 13.31, errorbars: +/- 0.1342',\n",
              "                 DeviceArray(13.502703, dtype=float32),\n",
              "                 DeviceArray(0.13417827, dtype=float32),\n",
              "                 DeviceArray(13.311537, dtype=float32)),\n",
              "              'G1 relaxed reverse lr=0.0001 seed=2':\n",
              "                ('average: 16.7102, inner st.dev.: +/- 17.66, errorbars: +/- 0.1224',\n",
              "                 DeviceArray(16.710213, dtype=float32),\n",
              "                 DeviceArray(0.1224412, dtype=float32),\n",
              "                 DeviceArray(17.65919, dtype=float32))},\n",
              "             {'Independent': ('average: 21.3441, inner st.dev.: +/- 20.51, errorbars: +/- 0.1217',\n",
              "                              DeviceArray(21.344065, dtype=float32),\n",
              "                              DeviceArray(0.12172244, dtype=float32),\n",
              "                              DeviceArray(20.511889, dtype=float32)),\n",
              "              'ICDF': ('average: 12.7015, inner st.dev.: +/- 11.99, errorbars: +/- 0.1300',\n",
              "                       DeviceArray(12.701512, dtype=float32),\n",
              "                       DeviceArray(0.12996091, dtype=float32),\n",
              "                       DeviceArray(11.986002, dtype=float32)),\n",
              "              'ICDF (permuted)': ('average: 21.1459, inner st.dev.: +/- 20.64, errorbars: +/- 0.1459',\n",
              "                                  DeviceArray(21.145863, dtype=float32),\n",
              "                                  DeviceArray(0.14590238, dtype=float32),\n",
              "                                  DeviceArray(20.639002, dtype=float32)),\n",
              "              'Gumbel-max': ('average: 18.9004, inner st.dev.: +/- 20.27, errorbars: +/- 0.1257',\n",
              "                             DeviceArray(18.900438, dtype=float32),\n",
              "                             DeviceArray(0.125733, dtype=float32),\n",
              "                             DeviceArray(20.268345, dtype=float32)),\n",
              "              'G2 relaxed reverse lr=0.001 seed=3':\n",
              "                ('average: 13.5999, inner st.dev.: +/- 13.33, errorbars: +/- 0.1329',\n",
              "                 DeviceArray(13.599887, dtype=float32),\n",
              "                 DeviceArray(0.13285685, dtype=float32),\n",
              "                 DeviceArray(13.329544, dtype=float32)),\n",
              "              'G1 relaxed reverse lr=0.0001 seed=3':\n",
              "                ('average: 16.1265, inner st.dev.: +/- 17.15, errorbars: +/- 0.1230',\n",
              "                 DeviceArray(16.126501, dtype=float32),\n",
              "                 DeviceArray(0.12303647, dtype=float32),\n",
              "                 DeviceArray(17.154503, dtype=float32))},\n",
              "             {'Independent': ('average: 21.2548, inner st.dev.: +/- 20.53, errorbars: +/- 0.1200',\n",
              "                              DeviceArray(21.254772, dtype=float32),\n",
              "                              DeviceArray(0.11998961, dtype=float32),\n",
              "                              DeviceArray(20.525291, dtype=float32)),\n",
              "              'ICDF': ('average: 12.4810, inner st.dev.: +/- 11.91, errorbars: +/- 0.1279',\n",
              "                       DeviceArray(12.481017, dtype=float32),\n",
              "                       DeviceArray(0.12794071, dtype=float32),\n",
              "                       DeviceArray(11.910197, dtype=float32)),\n",
              "              'ICDF (permuted)': ('average: 20.8856, inner st.dev.: +/- 20.56, errorbars: +/- 0.1432',\n",
              "                                  DeviceArray(20.885592, dtype=float32),\n",
              "                                  DeviceArray(0.1432301, dtype=float32),\n",
              "                                  DeviceArray(20.559101, dtype=float32)),\n",
              "              'Gumbel-max': ('average: 18.7396, inner st.dev.: +/- 20.24, errorbars: +/- 0.1239',\n",
              "                             DeviceArray(18.739632, dtype=float32),\n",
              "                             DeviceArray(0.12392923, dtype=float32),\n",
              "                             DeviceArray(20.236933, dtype=float32)),\n",
              "              'G2 relaxed reverse lr=0.001 seed=4':\n",
              "                ('average: 13.3833, inner st.dev.: +/- 13.27, errorbars: +/- 0.1309',\n",
              "                 DeviceArray(13.3832655, dtype=float32),\n",
              "                 DeviceArray(0.13088219, dtype=float32),\n",
              "                 DeviceArray(13.269712, dtype=float32)),\n",
              "              'G1 relaxed reverse lr=0.0001 seed=4':\n",
              "                ('average: 16.2885, inner st.dev.: +/- 17.37, errorbars: +/- 0.1199',\n",
              "                 DeviceArray(16.288496, dtype=float32),\n",
              "                 DeviceArray(0.1198744, dtype=float32),\n",
              "                 DeviceArray(17.368156, dtype=float32))},\n",
              "             {'Independent': ('average: 21.2223, inner st.dev.: +/- 20.57, errorbars: +/- 0.1205',\n",
              "                              DeviceArray(21.222311, dtype=float32),\n",
              "                              DeviceArray(0.12047369, dtype=float32),\n",
              "                              DeviceArray(20.568224, dtype=float32)),\n",
              "              'ICDF': ('average: 12.4795, inner st.dev.: +/- 11.97, errorbars: +/- 0.1281',\n",
              "                       DeviceArray(12.479548, dtype=float32),\n",
              "                       DeviceArray(0.12808156, dtype=float32),\n",
              "                       DeviceArray(11.974955, dtype=float32)),\n",
              "              'ICDF (permuted)': ('average: 20.8010, inner st.dev.: +/- 20.64, errorbars: +/- 0.1444',\n",
              "                                  DeviceArray(20.800993, dtype=float32),\n",
              "                                  DeviceArray(0.1444064, dtype=float32),\n",
              "                                  DeviceArray(20.641071, dtype=float32)),\n",
              "              'Gumbel-max': ('average: 18.7304, inner st.dev.: +/- 20.29, errorbars: +/- 0.1247',\n",
              "                             DeviceArray(18.730356, dtype=float32),\n",
              "                             DeviceArray(0.12467106, dtype=float32),\n",
              "                             DeviceArray(20.291777, dtype=float32)),\n",
              "              'G2 relaxed reverse lr=0.001 seed=5':\n",
              "                ('average: 13.3682, inner st.dev.: +/- 13.32, errorbars: +/- 0.1315',\n",
              "                 DeviceArray(13.3682375, dtype=float32),\n",
              "                 DeviceArray(0.13145773, dtype=float32),\n",
              "                 DeviceArray(13.31935, dtype=float32)),\n",
              "              'G1 relaxed reverse lr=0.0001 seed=5':\n",
              "                ('average: 16.8468, inner st.dev.: +/- 18.43, errorbars: +/- 0.1220',\n",
              "                 DeviceArray(16.84675, dtype=float32),\n",
              "                 DeviceArray(0.121962, dtype=float32),\n",
              "                 DeviceArray(18.432278, dtype=float32))}],\n",
              " 'independent': [{'Independent': ('average: 16.5083, inner st.dev.: +/- 18.05, errorbars: +/- 0.0724',\n",
              "                                  DeviceArray(16.508272, dtype=float32),\n",
              "                                  DeviceArray(0.07237832, dtype=float32),\n",
              "                                  DeviceArray(18.05484, dtype=float32)),\n",
              "                  'ICDF': ('average: 8.1507, inner st.dev.: +/- 9.355, errorbars: +/- 0.0720',\n",
              "                           DeviceArray(8.150713, dtype=float32),\n",
              "                           DeviceArray(0.07199745, dtype=float32),\n",
              "                           DeviceArray(9.354581, dtype=float32)),\n",
              "                  'ICDF (permuted)': ('average: 15.7011, inner st.dev.: +/- 17.91, errorbars: +/- 0.0884',\n",
              "                                      DeviceArray(15.701109, dtype=float32),\n",
              "                                      DeviceArray(0.08839431, dtype=float32),\n",
              "                                      DeviceArray(17.908134, dtype=float32)),\n",
              "                  'Gumbel-max': ('average: 14.0277, inner st.dev.: +/- 17.41, errorbars: +/- 0.0734',\n",
              "                                 DeviceArray(14.027739, dtype=float32),\n",
              "                                 DeviceArray(0.07340575, dtype=float32),\n",
              "                                 DeviceArray(17.409155, dtype=float32)),\n",
              "                  'G2 relaxed independent lr=0.001 seed=1':\n",
              "                    ('average: 8.7857, inner st.dev.: +/- 10.55, errorbars: +/- 0.0721',\n",
              "                     DeviceArray(8.785703, dtype=float32),\n",
              "                     DeviceArray(0.072105, dtype=float32),\n",
              "                     DeviceArray(10.547982, dtype=float32)),\n",
              "                  'G1 relaxed independent lr=0.0001 seed=1':\n",
              "                    ('average: 14.0397, inner st.dev.: +/- 17.33, errorbars: +/- 0.0725',\n",
              "                     DeviceArray(14.039748, dtype=float32),\n",
              "                     DeviceArray(0.07247224, dtype=float32),\n",
              "                     DeviceArray(17.33135, dtype=float32))},\n",
              "                 {'Independent': ('average: 16.5185, inner st.dev.: +/- 18.04, errorbars: +/- 0.0724',\n",
              "                                  DeviceArray(16.518478, dtype=float32),\n",
              "                                  DeviceArray(0.07243519, dtype=float32),\n",
              "                                  DeviceArray(18.040678, dtype=float32)),\n",
              "                  'ICDF': ('average: 8.1444, inner st.dev.: +/- 9.26, errorbars: +/- 0.0723',\n",
              "                           DeviceArray(8.144406, dtype=float32),\n",
              "                           DeviceArray(0.07233289, dtype=float32),\n",
              "                           DeviceArray(9.260457, dtype=float32)),\n",
              "                  'ICDF (permuted)': ('average: 15.7828, inner st.dev.: +/- 17.89, errorbars: +/- 0.0887',\n",
              "                                      DeviceArray(15.782795, dtype=float32),\n",
              "                                      DeviceArray(0.08872265, dtype=float32),\n",
              "                                      DeviceArray(17.891218, dtype=float32)),\n",
              "                  'Gumbel-max': ('average: 14.0247, inner st.dev.: +/- 17.37, errorbars: +/- 0.0732',\n",
              "                                 DeviceArray(14.024696, dtype=float32),\n",
              "                                 DeviceArray(0.07315344, dtype=float32),\n",
              "                                 DeviceArray(17.372143, dtype=float32)),\n",
              "                  'G2 relaxed independent lr=0.001 seed=2':\n",
              "                    ('average: 8.7584, inner st.dev.: +/- 10.43, errorbars: +/- 0.0723',\n",
              "                     DeviceArray(8.758417, dtype=float32),\n",
              "                     DeviceArray(0.07231494, dtype=float32),\n",
              "                     DeviceArray(10.42747, dtype=float32)),\n",
              "                  'G1 relaxed independent lr=0.0001 seed=2':\n",
              "                    ('average: 14.0517, inner st.dev.: +/- 17.26, errorbars: +/- 0.0725',\n",
              "                     DeviceArray(14.051689, dtype=float32),\n",
              "                     DeviceArray(0.07250919, dtype=float32),\n",
              "                     DeviceArray(17.255306, dtype=float32))},\n",
              "                 {'Independent': ('average: 16.4980, inner st.dev.: +/- 18.02, errorbars: +/- 0.0719',\n",
              "                                  DeviceArray(16.497957, dtype=float32),\n",
              "                                  DeviceArray(0.07191302, dtype=float32),\n",
              "                                  DeviceArray(18.018637, dtype=float32)),\n",
              "                  'ICDF': ('average: 8.1259, inner st.dev.: +/- 9.256, errorbars: +/- 0.0721',\n",
              "                           DeviceArray(8.125899, dtype=float32),\n",
              "                           DeviceArray(0.07208291, dtype=float32),\n",
              "                           DeviceArray(9.256451, dtype=float32)),\n",
              "                  'ICDF (permuted)': ('average: 15.6750, inner st.dev.: +/- 17.89, errorbars: +/- 0.0876',\n",
              "                                      DeviceArray(15.674964, dtype=float32),\n",
              "                                      DeviceArray(0.08761985, dtype=float32),\n",
              "                                      DeviceArray(17.890633, dtype=float32)),\n",
              "                  'Gumbel-max': ('average: 14.0122, inner st.dev.: +/- 17.36, errorbars: +/- 0.0725',\n",
              "                                 DeviceArray(14.012157, dtype=float32),\n",
              "                                 DeviceArray(0.07254427, dtype=float32),\n",
              "                                 DeviceArray(17.362978, dtype=float32)),\n",
              "                  'G2 relaxed independent lr=0.001 seed=3':\n",
              "                    ('average: 8.7388, inner st.dev.: +/- 10.44, errorbars: +/- 0.0724',\n",
              "                     DeviceArray(8.7387905, dtype=float32),\n",
              "                     DeviceArray(0.07240396, dtype=float32),\n",
              "                     DeviceArray(10.435396, dtype=float32)),\n",
              "                  'G1 relaxed independent lr=0.0001 seed=3':\n",
              "                    ('average: 14.0592, inner st.dev.: +/- 17.23, errorbars: +/- 0.0718',\n",
              "                     DeviceArray(14.0592165, dtype=float32),\n",
              "                     DeviceArray(0.07180684, dtype=float32),\n",
              "                     DeviceArray(17.232843, dtype=float32))},\n",
              "                 {'Independent': ('average: 16.5053, inner st.dev.: +/- 18.08, errorbars: +/- 0.0728',\n",
              "                                  DeviceArray(16.50528, dtype=float32),\n",
              "                                  DeviceArray(0.07281687, dtype=float32),\n",
              "                                  DeviceArray(18.077633, dtype=float32)),\n",
              "                  'ICDF': ('average: 8.1438, inner st.dev.: +/- 9.36, errorbars: +/- 0.0726',\n",
              "                           DeviceArray(8.14375, dtype=float32),\n",
              "                           DeviceArray(0.07259623, dtype=float32),\n",
              "                           DeviceArray(9.360439, dtype=float32)),\n",
              "                  'ICDF (permuted)': ('average: 15.7532, inner st.dev.: +/- 17.97, errorbars: +/- 0.0884',\n",
              "                                      DeviceArray(15.753175, dtype=float32),\n",
              "                                      DeviceArray(0.08844307, dtype=float32),\n",
              "                                      DeviceArray(17.970547, dtype=float32)),\n",
              "                  'Gumbel-max': ('average: 14.0270, inner st.dev.: +/- 17.45, errorbars: +/- 0.0736',\n",
              "                                 DeviceArray(14.026989, dtype=float32),\n",
              "                                 DeviceArray(0.07357304, dtype=float32),\n",
              "                                 DeviceArray(17.445452, dtype=float32)),\n",
              "                  'G2 relaxed independent lr=0.001 seed=4':\n",
              "                    ('average: 8.7900, inner st.dev.: +/- 10.58, errorbars: +/- 0.0728',\n",
              "                     DeviceArray(8.790046, dtype=float32),\n",
              "                     DeviceArray(0.07283345, dtype=float32),\n",
              "                     DeviceArray(10.584379, dtype=float32)),\n",
              "                  'G1 relaxed independent lr=0.0001 seed=4':\n",
              "                    ('average: 14.0333, inner st.dev.: +/- 17.33, errorbars: +/- 0.0730',\n",
              "                     DeviceArray(14.033333, dtype=float32),\n",
              "                     DeviceArray(0.07300204, dtype=float32),\n",
              "                     DeviceArray(17.331, dtype=float32))},\n",
              "                 {'Independent': ('average: 16.5197, inner st.dev.: +/- 18.06, errorbars: +/- 0.0733',\n",
              "                                  DeviceArray(16.519663, dtype=float32),\n",
              "                                  DeviceArray(0.07327545, dtype=float32),\n",
              "                                  DeviceArray(18.061222, dtype=float32)),\n",
              "                  'ICDF': ('average: 8.1194, inner st.dev.: +/- 9.279, errorbars: +/- 0.0734',\n",
              "                           DeviceArray(8.119367, dtype=float32),\n",
              "                           DeviceArray(0.07342999, dtype=float32),\n",
              "                           DeviceArray(9.278698, dtype=float32)),\n",
              "                  'ICDF (permuted)': ('average: 15.6836, inner st.dev.: +/- 17.92, errorbars: +/- 0.0883',\n",
              "                                      DeviceArray(15.683562, dtype=float32),\n",
              "                                      DeviceArray(0.0882907, dtype=float32),\n",
              "                                      DeviceArray(17.918564, dtype=float32)),\n",
              "                  'Gumbel-max': ('average: 14.0308, inner st.dev.: +/- 17.41, errorbars: +/- 0.0740',\n",
              "                                 DeviceArray(14.030783, dtype=float32),\n",
              "                                 DeviceArray(0.07404755, dtype=float32),\n",
              "                                 DeviceArray(17.410183, dtype=float32)),\n",
              "                  'G2 relaxed independent lr=0.001 seed=5':\n",
              "                    ('average: 8.7195, inner st.dev.: +/- 10.41, errorbars: +/- 0.0737',\n",
              "                     DeviceArray(8.719542, dtype=float32),\n",
              "                     DeviceArray(0.0736623, dtype=float32),\n",
              "                     DeviceArray(10.407764, dtype=float32)),\n",
              "                  'G1 relaxed independent lr=0.0001 seed=5':\n",
              "                    ('average: 14.0687, inner st.dev.: +/- 17.24, errorbars: +/- 0.0733',\n",
              "                     DeviceArray(14.068659, dtype=float32),\n",
              "                     DeviceArray(0.07332011, dtype=float32),\n",
              "                     DeviceArray(17.23859, dtype=float32))}],\n",
              " 'fixed': [{'Independent': ('average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000',\n",
              "                            DeviceArray(10.153068, dtype=float32),\n",
              "                            DeviceArray(0., dtype=float32),\n",
              "                            DeviceArray(12.386539, dtype=float32)),\n",
              "            'ICDF': ('average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000',\n",
              "                     DeviceArray(2.879294, dtype=float32),\n",
              "                     DeviceArray(0., dtype=float32),\n",
              "                     DeviceArray(3.470504, dtype=float32)),\n",
              "            'ICDF (permuted)': ('average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000',\n",
              "                                DeviceArray(7.497608, dtype=float32),\n",
              "                                DeviceArray(0., dtype=float32),\n",
              "                                DeviceArray(8.425566, dtype=float32)),\n",
              "            'Gumbel-max': ('average: 7.0903, inner st.dev.: +/- 11.12, errorbars: +/- 0.0000',\n",
              "                           DeviceArray(7.09031, dtype=float32),\n",
              "                           DeviceArray(0., dtype=float32),\n",
              "                           DeviceArray(11.1216755, dtype=float32)),\n",
              "            'G2 relaxed fixed lr=1e-05 seed=1':\n",
              "              ('average: 3.1461, inner st.dev.: +/- 3.805, errorbars: +/- 0.0000',\n",
              "               DeviceArray(3.1460903, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(3.8048272, dtype=float32)),\n",
              "            'G1 relaxed fixed lr=0.0001 seed=1':\n",
              "              ('average: 4.8308, inner st.dev.: +/- 5.834, errorbars: +/- 0.0000',\n",
              "               DeviceArray(4.83077, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(5.8336105, dtype=float32))},\n",
              "           {'Independent': ('average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000',\n",
              "                            DeviceArray(10.153068, dtype=float32),\n",
              "                            DeviceArray(0., dtype=float32),\n",
              "                            DeviceArray(12.386539, dtype=float32)),\n",
              "            'ICDF': ('average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000',\n",
              "                     DeviceArray(2.879294, dtype=float32),\n",
              "                     DeviceArray(0., dtype=float32),\n",
              "                     DeviceArray(3.470504, dtype=float32)),\n",
              "            'ICDF (permuted)': ('average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000',\n",
              "                                DeviceArray(7.497608, dtype=float32),\n",
              "                                DeviceArray(0., dtype=float32),\n",
              "                                DeviceArray(8.425566, dtype=float32)),\n",
              "            'Gumbel-max': ('average: 7.0558, inner st.dev.: +/- 11.02, errorbars: +/- 0.0000',\n",
              "                           DeviceArray(7.05576, dtype=float32),\n",
              "                           DeviceArray(0., dtype=float32),\n",
              "                           DeviceArray(11.024198, dtype=float32)),\n",
              "            'G2 relaxed fixed lr=1e-05 seed=2':\n",
              "              ('average: 3.1316, inner st.dev.: +/- 3.796, errorbars: +/- 0.0000',\n",
              "               DeviceArray(3.1315596, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(3.7957344, dtype=float32)),\n",
              "            'G1 relaxed fixed lr=0.0001 seed=2':\n",
              "              ('average: 4.8122, inner st.dev.: +/- 5.317, errorbars: +/- 0.0000',\n",
              "               DeviceArray(4.81216, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(5.317307, dtype=float32))},\n",
              "           {'Independent': ('average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000',\n",
              "                            DeviceArray(10.153068, dtype=float32),\n",
              "                            DeviceArray(0., dtype=float32),\n",
              "                            DeviceArray(12.386539, dtype=float32)),\n",
              "            'ICDF': ('average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000',\n",
              "                     DeviceArray(2.879294, dtype=float32),\n",
              "                     DeviceArray(0., dtype=float32),\n",
              "                     DeviceArray(3.470504, dtype=float32)),\n",
              "            'ICDF (permuted)': ('average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000',\n",
              "                                DeviceArray(7.497608, dtype=float32),\n",
              "                                DeviceArray(0., dtype=float32),\n",
              "                                DeviceArray(8.425566, dtype=float32)),\n",
              "            'Gumbel-max': ('average: 7.1221, inner st.dev.: +/- 11.18, errorbars: +/- 0.0000',\n",
              "                           DeviceArray(7.1221094, dtype=float32),\n",
              "                           DeviceArray(0., dtype=float32),\n",
              "                           DeviceArray(11.181316, dtype=float32)),\n",
              "            'G2 relaxed fixed lr=1e-05 seed=3':\n",
              "              ('average: 3.1257, inner st.dev.: +/- 3.806, errorbars: +/- 0.0000',\n",
              "               DeviceArray(3.1257203, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(3.8064022, dtype=float32)),\n",
              "            'G1 relaxed fixed lr=0.0001 seed=3':\n",
              "              ('average: 4.7809, inner st.dev.: +/- 5.415, errorbars: +/- 0.0000',\n",
              "               DeviceArray(4.7808704, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(5.4149504, dtype=float32))},\n",
              "           {'Independent': ('average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000',\n",
              "                            DeviceArray(10.153068, dtype=float32),\n",
              "                            DeviceArray(0., dtype=float32),\n",
              "                            DeviceArray(12.386539, dtype=float32)),\n",
              "            'ICDF': ('average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000',\n",
              "                     DeviceArray(2.879294, dtype=float32),\n",
              "                     DeviceArray(0., dtype=float32),\n",
              "                     DeviceArray(3.470504, dtype=float32)),\n",
              "            'ICDF (permuted)': ('average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000',\n",
              "                                DeviceArray(7.497608, dtype=float32),\n",
              "                                DeviceArray(0., dtype=float32),\n",
              "                                DeviceArray(8.425566, dtype=float32)),\n",
              "            'Gumbel-max': ('average: 7.0709, inner st.dev.: +/- 11.04, errorbars: +/- 0.0000',\n",
              "                           DeviceArray(7.07087, dtype=float32),\n",
              "                           DeviceArray(0., dtype=float32),\n",
              "                           DeviceArray(11.044176, dtype=float32)),\n",
              "            'G2 relaxed fixed lr=1e-05 seed=4':\n",
              "              ('average: 3.1410, inner st.dev.: +/- 3.791, errorbars: +/- 0.0000',\n",
              "               DeviceArray(3.1410398, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(3.7909806, dtype=float32)),\n",
              "            'G1 relaxed fixed lr=0.0001 seed=4':\n",
              "              ('average: 4.2791, inner st.dev.: +/- 5.127, errorbars: +/- 0.0000',\n",
              "               DeviceArray(4.27908, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(5.127274, dtype=float32))},\n",
              "           {'Independent': ('average: 10.1531, inner st.dev.: +/- 12.39, errorbars: +/- 0.0000',\n",
              "                            DeviceArray(10.153068, dtype=float32),\n",
              "                            DeviceArray(0., dtype=float32),\n",
              "                            DeviceArray(12.386539, dtype=float32)),\n",
              "            'ICDF': ('average: 2.8793, inner st.dev.: +/- 3.471, errorbars: +/- 0.0000',\n",
              "                     DeviceArray(2.879294, dtype=float32),\n",
              "                     DeviceArray(0., dtype=float32),\n",
              "                     DeviceArray(3.470504, dtype=float32)),\n",
              "            'ICDF (permuted)': ('average: 7.4976, inner st.dev.: +/- 8.426, errorbars: +/- 0.0000',\n",
              "                                DeviceArray(7.497608, dtype=float32),\n",
              "                                DeviceArray(0., dtype=float32),\n",
              "                                DeviceArray(8.425566, dtype=float32)),\n",
              "            'Gumbel-max': ('average: 7.1116, inner st.dev.: +/- 11.09, errorbars: +/- 0.0000',\n",
              "                           DeviceArray(7.1116104, dtype=float32),\n",
              "                           DeviceArray(0., dtype=float32),\n",
              "                           DeviceArray(11.094126, dtype=float32)),\n",
              "            'G2 relaxed fixed lr=1e-05 seed=5':\n",
              "              ('average: 3.1528, inner st.dev.: +/- 3.808, errorbars: +/- 0.0000',\n",
              "               DeviceArray(3.1528099, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(3.8084095, dtype=float32)),\n",
              "            'G1 relaxed fixed lr=0.0001 seed=5':\n",
              "              ('average: 4.7627, inner st.dev.: +/- 5.258, errorbars: +/- 0.0000',\n",
              "               DeviceArray(4.76273, dtype=float32),\n",
              "               DeviceArray(0., dtype=float32),\n",
              "               DeviceArray(5.257814, dtype=float32))}]}"
            ]
          },
          "execution_count": 300,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "scores_per_mode"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "fXzbqrszZKQ6"
      },
      "outputs": [],
      "source": [
        "def fix_name(name):\n",
        "  lookups = {\n",
        "    \"Independent\":\"Independent\",\n",
        "    \"ICDF\":\"CDF$^{-1}$\",\n",
        "    \"ICDF (permuted)\":\"Permuted CDF$^{-1}$\",\n",
        "    \"Gumbel-max\":\"Gumbel-max\",\n",
        "    \"G1\":\"Gadget 1\",\n",
        "    \"G2\":\"Gadget 2\",\n",
        "  }\n",
        "  return lookups[name.split(\" relaxed\")[0]]\n",
        "\n",
        "\n",
        "all_scores = {}\n",
        "for p_q_mode in [\"reverse\", \"independent\", \"fixed\"]:\n",
        "  scores = collections.defaultdict(list)\n",
        "  for eval_sample in scores_per_mode[p_q_mode]:\n",
        "    for name, (_, eval_average_for_seed, _, _) in eval_sample.items():\n",
        "      if \" seed\" in name:\n",
        "        name = name.split(\" seed\")[0]\n",
        "      scores[name].append(eval_average_for_seed)\n",
        "  all_scores[p_q_mode] = {fix_name(k):np.array(v) for k,v in scores.items()}"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 135
        },
        "executionInfo": {
          "elapsed": 62,
          "status": "ok",
          "timestamp": 1633407949324,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "NBqjrGlDTHee",
        "outputId": "155a65ad-0159-4d99-81dd-b00932d9b353"
      },
      "outputs": [
        {
          "data": {
            "text/html": [
              "\n",
              "  <style>\n",
              "    details {\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] {\n",
              "      display: block;\n",
              "    }\n",
              "    details > summary > .when_closed {\n",
              "      overflow: hidden;\n",
              "      white-space: nowrap;\n",
              "    }\n",
              "    details > summary > .when_open{\n",
              "      display: none;\n",
              "    }\n",
              "    details[open] > summary > .when_open{\n",
              "      display: inline;\n",
              "    }\n",
              "    details[open] > summary > .when_closed{\n",
              "      display: none;\n",
              "    }\n",
              "  </style>\n",
              "  <pre><details open><summary><span class=\"when_closed\">{&#x27;reverse&#x27;: {&#x27;Independent&#x27;: array([21.363926, 21.50043 , 21.344065, 21.254772, 21.222311], dtype=float32), &#x27;CDF$^{-1}$&#x27;: array([12.609152, 12.670625, 12.701512, 12.481017, 12.479548], dtype=float32), &#x27;Permuted CDF$^{-1}$&#x27;: array([20.964172, 21.190104, 21.145863, 20.885592, 20.800993], dtype=float32), &#x27;Gumbel-max&#x27;: array([18.884254, 18.94298 , 18.900438, 18.739632, 18.730356], dtype=float32), &#x27;Gadget 2&#x27;: array([13.488668 , 13.502703 , 13...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;reverse&#x27;: <details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: array([21.363926, 21.50043 , 21.344065, 21.254772, 21.222311], dtype=float32), &#x27;CDF$^{-1}$&#x27;: array([12.609152, 12.670625, 12.701512, 12.481017, 12.479548], dtype=float32), &#x27;Permuted CDF$^{-1}$&#x27;: array([20.964172, 21.190104, 21.145863, 20.885592, 20.800993], dtype=float32), &#x27;Gumbel-max&#x27;: array([18.884254, 18.94298 , 18.900438, 18.739632, 18.730356], dtype=float32), &#x27;Gadget 2&#x27;: array([13.488668 , 13.502703 , 13.599887 , 13.3832655, ...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: array([21.363926, 21.50043 , 21.344065, 21.254772, 21.222311], dtype=float32)</li><li>&#x27;CDF$^{-1}$&#x27;: array([12.609152, 12.670625, 12.701512, 12.481017, 12.479548], dtype=float32)</li><li>&#x27;Permuted CDF$^{-1}$&#x27;: array([20.964172, 21.190104, 21.145863, 20.885592, 20.800993], dtype=float32)</li><li>&#x27;Gumbel-max&#x27;: array([18.884254, 18.94298 , 18.900438, 18.739632, 18.730356], dtype=float32)</li><li>&#x27;Gadget 2&#x27;: array([13.488668 , 13.502703 , 13.599887 , 13.3832655, 13.3682375], dtype=float32)</li><li>&#x27;Gadget 1&#x27;: array([17.393736, 16.710213, 16.126501, 16.288496, 16.84675 ], dtype=float32)</li></ul>}</details></li><li>&#x27;independent&#x27;: <details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: array([16.508272, 16.518478, 16.497957, 16.50528 , 16.519663], dtype=float32), &#x27;CDF$^{-1}$&#x27;: array([8.150713, 8.144406, 8.125899, 8.14375 , 8.119367], dtype=float32), &#x27;Permuted CDF$^{-1}$&#x27;: array([15.701109, 15.782795, 15.674964, 15.753175, 15.683562], dtype=float32), &#x27;Gumbel-max&#x27;: array([14.027739, 14.024696, 14.012157, 14.026989, 14.030783], dtype=float32), &#x27;Gadget 2&#x27;: array([8.785703 , 8.758417 , 8.7387905, 8.790046 , 8.719542 ...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: array([16.508272, 16.518478, 16.497957, 16.50528 , 16.519663], dtype=float32)</li><li>&#x27;CDF$^{-1}$&#x27;: array([8.150713, 8.144406, 8.125899, 8.14375 , 8.119367], dtype=float32)</li><li>&#x27;Permuted CDF$^{-1}$&#x27;: array([15.701109, 15.782795, 15.674964, 15.753175, 15.683562], dtype=float32)</li><li>&#x27;Gumbel-max&#x27;: array([14.027739, 14.024696, 14.012157, 14.026989, 14.030783], dtype=float32)</li><li>&#x27;Gadget 2&#x27;: array([8.785703 , 8.758417 , 8.7387905, 8.790046 , 8.719542 ], dtype=float32)</li><li>&#x27;Gadget 1&#x27;: array([14.039748 , 14.051689 , 14.0592165, 14.033333 , 14.068659 ], dtype=float32)</li></ul>}</details></li><li>&#x27;fixed&#x27;: <details ><summary><span class=\"when_closed\">{&#x27;Independent&#x27;: array([10.153068, 10.153068, 10.153068, 10.153068, 10.153068], dtype=float32), &#x27;CDF$^{-1}$&#x27;: array([2.879294, 2.879294, 2.879294, 2.879294, 2.879294], dtype=float32), &#x27;Permuted CDF$^{-1}$&#x27;: array([7.497608, 7.497608, 7.497608, 7.497608, 7.497608], dtype=float32), &#x27;Gumbel-max&#x27;: array([7.09031  , 7.05576  , 7.1221094, 7.07087  , 7.1116104], dtype=float32), &#x27;Gadget 2&#x27;: array([3.1460903, 3.1315596, 3.1257203, 3.1410398, 3.1528099], dt...</span><span class=\"when_open\">{</span></summary><ul><li>&#x27;Independent&#x27;: array([10.153068, 10.153068, 10.153068, 10.153068, 10.153068], dtype=float32)</li><li>&#x27;CDF$^{-1}$&#x27;: array([2.879294, 2.879294, 2.879294, 2.879294, 2.879294], dtype=float32)</li><li>&#x27;Permuted CDF$^{-1}$&#x27;: array([7.497608, 7.497608, 7.497608, 7.497608, 7.497608], dtype=float32)</li><li>&#x27;Gumbel-max&#x27;: array([7.09031  , 7.05576  , 7.1221094, 7.07087  , 7.1116104], dtype=float32)</li><li>&#x27;Gadget 2&#x27;: array([3.1460903, 3.1315596, 3.1257203, 3.1410398, 3.1528099], dtype=float32)</li><li>&#x27;Gadget 1&#x27;: array([4.83077  , 4.81216  , 4.7808704, 4.27908  , 4.76273  ], dtype=float32)</li></ul>}</details></li></ul>}</details></pre>"
            ],
            "text/plain": [
              "{'reverse': {'Independent': array([21.363926, 21.50043 , 21.344065, 21.254772, 21.222311], dtype=float32),\n",
              "             'CDF$^{-1}$': array([12.609152, 12.670625, 12.701512, 12.481017, 12.479548], dtype=float32),\n",
              "             'Permuted CDF$^{-1}$': array([20.964172, 21.190104, 21.145863, 20.885592, 20.800993], dtype=float32),\n",
              "             'Gumbel-max': array([18.884254, 18.94298 , 18.900438, 18.739632, 18.730356], dtype=float32),\n",
              "             'Gadget 2': array([13.488668 , 13.502703 , 13.599887 , 13.3832655, 13.3682375], dtype=float32),\n",
              "             'Gadget 1': array([17.393736, 16.710213, 16.126501, 16.288496, 16.84675 ], dtype=float32)},\n",
              " 'independent': {'Independent': array([16.508272, 16.518478, 16.497957, 16.50528 , 16.519663], dtype=float32),\n",
              "                 'CDF$^{-1}$': array([8.150713, 8.144406, 8.125899, 8.14375 , 8.119367], dtype=float32),\n",
              "                 'Permuted CDF$^{-1}$': array([15.701109, 15.782795, 15.674964, 15.753175, 15.683562], dtype=float32),\n",
              "                 'Gumbel-max': array([14.027739, 14.024696, 14.012157, 14.026989, 14.030783], dtype=float32),\n",
              "                 'Gadget 2': array([8.785703 , 8.758417 , 8.7387905, 8.790046 , 8.719542 ], dtype=float32),\n",
              "                 'Gadget 1': array([14.039748 , 14.051689 , 14.0592165, 14.033333 , 14.068659 ], dtype=float32)},\n",
              " 'fixed': {'Independent': array([10.153068, 10.153068, 10.153068, 10.153068, 10.153068], dtype=float32),\n",
              "           'CDF$^{-1}$': array([2.879294, 2.879294, 2.879294, 2.879294, 2.879294], dtype=float32),\n",
              "           'Permuted CDF$^{-1}$': array([7.497608, 7.497608, 7.497608, 7.497608, 7.497608], dtype=float32),\n",
              "           'Gumbel-max': array([7.09031  , 7.05576  , 7.1221094, 7.07087  , 7.1116104], dtype=float32),\n",
              "           'Gadget 2': array([3.1460903, 3.1315596, 3.1257203, 3.1410398, 3.1528099], dtype=float32),\n",
              "           'Gadget 1': array([4.83077  , 4.81216  , 4.7808704, 4.27908  , 4.76273  ], dtype=float32)}}"
            ]
          },
          "execution_count": 302,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "all_scores"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QHv1XyMwFne9"
      },
      "source": [
        "### Build the table"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "executionInfo": {
          "elapsed": 65,
          "status": "ok",
          "timestamp": 1633407949639,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "b8UIWzpxaN5_",
        "outputId": "a7d7384f-fe96-4202-c4fd-b848bbca8d91"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Independent & 16.51 $\\pm$ 0.01 & 21.34 $\\pm$ 0.10 \\\\\n",
            "CDF$^{-1}$ & 8.14 $\\pm$ 0.01 & 12.59 $\\pm$ 0.09 \\\\\n",
            "Permuted CDF$^{-1}$ & 15.72 $\\pm$ 0.04 & 21.00 $\\pm$ 0.15 \\\\\n",
            "Gumbel-max & 14.02 $\\pm$ 0.01 & 18.84 $\\pm$ 0.09 \\\\\n",
            "Gadget 1 & 14.05 $\\pm$ 0.01 & 16.67 $\\pm$ 0.45 \\\\\n",
            "Gadget 2 & 8.76 $\\pm$ 0.03 & 13.47 $\\pm$ 0.09 \\\\\n"
          ]
        }
      ],
      "source": [
        "name_order = [\n",
        "  \"Independent\",\n",
        "  \"CDF$^{-1}$\",\n",
        "  \"Permuted CDF$^{-1}$\",\n",
        "  \"Gumbel-max\",\n",
        "  \"Gadget 1\",\n",
        "  \"Gadget 2\",\n",
        "]\n",
        "\n",
        "for name in name_order:\n",
        "  parts = [name]\n",
        "  parts.append(\" & \")\n",
        "  for p_q_mode in [\"independent\", \"reverse\"]: # \"fixed\",\n",
        "    avg = np.mean(all_scores[p_q_mode][name])\n",
        "    std = np.std(all_scores[p_q_mode][name])\n",
        "    parts.append(f\"{avg:.2f} $\\pm$ {std:.2f}\")\n",
        "    parts.append(\" & \")\n",
        "  parts.pop()\n",
        "  parts.append(\" \\\\\\\\\")\n",
        "  print(\"\".join(parts))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "height": 231
        },
        "executionInfo": {
          "elapsed": 19645,
          "status": "ok",
          "timestamp": 1633407969428,
          "user": {
            "displayName": "Daniel Johnson",
            "photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgK__zSgxRVtTQH-k5gXKrV6CwWguknfCt5w9N9=s64",
            "userId": "04315355432659111773"
          },
          "user_tz": 240
        },
        "id": "guPqtgdHkIff",
        "outputId": "060896a3-479d-487f-fa87-baff953c65d9"
      },
      "outputs": [
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABzsAAAEqCAMAAAC1Pc2IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAACE1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAVREAlVEA1dFBVj95yRHFGZHKnlHEWM/RYdGC15GCVxIGWtHJ3dbyGINABFIIXJGDF9FBlpHFmlpzFtEOYJEN4FHJXVGMH1HGGo8TYopeY4oe47x5RxII3RFNYBDOoMfooZGL3xIIHHz5R5FNH8zYY1GDmEfo4ZHwG7s5BoemokwZ41HLHsip4Q9SolIHnAyY41IHW9IInNFMn9AQ4cwtHpHFWcxZI0gkYz25h9CPYRNwmtCQIUenYhIGmwOAxQOBxgOBBUMDRsNCRkzLgcSKBMAAAAVKRIIGBwGHxsNCxoHAAoOAhMNDBoJFBwOBhYPJxUJJBgxLgYGHRwGCQwKGAsMGAoeGwTqturMAAAAWXRSTlMAAtL0ZQofzNXhBKC0DN/QpBuAREDPAegO5HkQBz3x/JdVb5wqwxTKwNs3MuynuiUhX5B+FoTZ98Y5TXJ1SLHYe0WTLL0YqUpibO9dyGlSrOq3hzCMWkKJLgaSfZsAACAASURBVHja7Jxpc+LIGcdbyGBL2AyXLQNCHAYMGA/34AsfY2OPGbANNjWzqcrxItmpvMvxIknlS+RFKrU7uxlVNpNjk+x3TLcOJDA9hhnKHPP8amqE2kK4/+p+/v08EkYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAqxvsqegAkgHAAAADA+fsIMBgHQAAADASIAB3FOkDNIBAAB85nQWWaEVRFyFlXaaDCIvWNY12ACcgpRaUF7hY9jQc4SS+Ohns9p13FXBvvLgUR6Kdz6gXI90l4sVu1k3k5iGqAAAAJPG7Rwqeno+d532b66s/N4dUWJ9z2HXJanFCbU+74yJKCZsaTtWNoi9c5ajPu6qa6ltauBH8U6KcoOlu7oK2826mcTsEXUG8fo+tAtAmAGJZkv8j/XOnvdp2UJOxtlCUW3KterCcyXGFuU5uNzrbMSkRFo+7Zekv/CYFbQ3oLxjbfa9E90tI9d1xhHFe35LhecOLOxGqcWeBRCSs8QonXKFPdCPuV1lz8/LwynXJ13ZbtatV0xD1KmtTmyyN5vNtbF6p3jNyV68PVhiHQf6wiKckeJ4FobwjMvNZh1ngFIfCDN6QUKjdijIpN+RnUqyr0m0S8L+XITq0SQSNzh2tdo7s8jUVKJxsnLk6W0CpsM7tWwhJxsJScsu1ixR0mgR5sA7qyHerATX7JOkJTTyCIXD2m64Iq/qRc4zN/4vmcnseGd4yNiWysxiUcw5qoh7YrMirlFy3azeimdF3TsVQbRjRG6fj4TKQymnStdVzvBORTezmGZRp7U6IURW1m6d4ni9MxoUFO/c4rNcR21znieYrWFn78wo9YEwYypIEErNXcUoPZFisq+pHQ/EhOocROoRJbK6c8xez0IqGNeNslGwXkmJnqbHXgfsnAu+MVwVxs9lmqHExAJhPn5Xx0EQr0bYp8+x8ukdyYInZ7K9KR0GjN3yDvsU/5IvucwxfhPjd2TOA9gf83gfR8QQa+nPFszeeXSBcxUSEFsX81Bm6Ag9Y7dxjDhWkg7plzh4rGlhC5HhnF4R8zOaICDSVS5sTXP4pd+OuBekCcfwa3x5Lw97vFM7JijgxfJO+aOU071T1a1HTEPUqa1OXGmvSJ0hjxNDuZliy7mGdC5is/RniGziHSeErV3vdF87WUvWf+M7QejFEevAb/Q3eNRcMsdMn77ueq7eA85K6yOsfKdaqYtVyUdWSVqYsdrrRwdYGrWAYQ4zZXvPGXhZHR8Lyb4mImT5fB5KXSNLhJDlyqTQ6mvNKLMVvOaMN81Nj027EuEPuE8/j3vHtt4QJpdE5EMLTBOHt0ZBDLJO5MpcMCeZBEr6Tq3Xpl1H1ppsoxgbFAshD4o2XGJ4G/vjhvW2ElNnrX+5zzt9Pru2JGjara4lfCEjh3NRou/LnnzNB3sVjqrb4+7cbl3OdKkiEpIkiW0h7kRrcuL5vHDW453aMZ1FfMh2+aOU00OkoZtJTH077aPE8M7D9VjlLLe+lEfeUEH0sllUOAysLLcN76xUebvjmF9w4CCZW/NWthATd2frtzgQdvq9c221qWzzlkKGhEm3VF9qzvR8Qt5T5rVw1Q0z7WTAZfHpBQzz4kAdGFLwAe8MyCU8Di1zFHKGlwiVcGTuSnRQQJpRXh1pyy6j6bHBIx6VZPFTT5OQ8CUuPp2gd6Zwhi/XbCErjnBO5CfiP83jvBOhWIjp7h5jB2yhIl7CWfEVI/XyWojPyS6ENjv9K15lYK9s8aVrrV+xxZBsX0MrqdxceOfDd+362Sio29SLrndGZ7Tzald3U6Y9s3eyr3Hfysjh6R7jNeWdoyqne6ehm0lMfTulvCQL4h2pEjS8E8exRT9CdwXsnXi6nRfXSPlh12F4J54weyyDVuSAsn+IR0mufuTvObHunW6LGn38shv7cAzFXMyu0JnBIWUoRSgUumGG1MMWfHoB4753Pph32kiAPuFmP+R8hET8Wdh4vy21rhvly4aqn6np0WPIFkKn7KfX/zZVLSbnnXhSYw3TGZJLO1G4QpIFP0peEkstdXfV6R++w0cJHkRapYpLqcviHw3yTkJNVqpJDHcsJg5fobvinDwati9cWfnqq3tPiw6i1Flhquye8nqXJbfoAlWR77Czepde7Sqz6Lcyp+n73rnTZqqVMmosdI8RuSh/FSqPrhzixbZT5Lu6mcQ0izrlqQJ2uq534msez+P5sYG8ZLrdhUsymUgs8c4Oi9N4MpE8HAn8LlRt1CVFtuvK+iDvvHRoX+3ZJx+0rK7F/Nezm1ThfqWTGaniNMIMTpyqvm6RY3TvVPLOq/nJO0eQiDlvme5pXOdRN+9cUvNOU9MjE5BteOX36ZX0y2V8mR0vJu6dSt7pxHnnhlZn0vLOjZ6yk77aeaauf3TvLFK8s6R6Z4Js8CV7khGEUN0/B+ZJvqW4vKt8S7FxyQx2AO2Jl0RSkixYvRbud1jRKbGI33Uyq13XuuraFuoNz33v3FpindtltMdJB/oxW8ZztiMph9wyhtzbUXXDCupi6ttpJqDeosLhjviav8871byTqaj+1807De8UKxEeHWLZLoTl8ADvfOHLafueWfdOQynHvogKTiOpOlGSKr3IURzZO5FwMpYoPXsSrdmTVtP7JUEQ5IxSlNDvd5qaHplgyM9f3MQ++Tyeei6wIacn7p2ocScGJSeyCVVG9LpQ0hezXm8bu6p3kir7Hb5i+0kbSux1vbMZZ+5lC+kskzjXhrLDzwcOnShRq9V8kRUEAJ8BB0Jkhbmte1E5ac2m+r0TTzc2hgrnJeSqDvLOlZB3jWTwCeEC/zPOKoq+E3ENdYRu7OFTRZ6cay+wlvblZ1qpmzxK3zi7YeZVMuB64usWObphpluQ0DWxylkRp1piM643a03t5Jw8ZzuqROFGT5wt4dArp1U3xZGePGdrbnpcmvZDdnF3DCcKS6loyDqhK2Lyzlxce842Wc8s25TnbJcTxq5Wdsprz9nuP2Md7a53JuL1VeRv9WQLHQcr2GtIab7FJ7kumdMWAJh7OpuVzOaCiBJP2R13n3f6jjPcSxzi2w7pKDrIO9GlIDlxuk4eYK4KCbSkZQgcmV455CBf5sQ/Is2xBkuexNvOsEfR2VYqwrHLJAhpYcbqlI6OHd0ihxJmzAUJ7Q9mILIr43eRjV1t1prm6fudo0hkk8nf6+oYEqlBXinp5JKVZx6j6fEJj/GKnKSm71Il4S+eAQAwaZpJ0GDOJIqPsRAQncKbFOCdAABMlFqQyaaioMOcSUS+WjK2HNYN3gkAANCDbYn13YmgA0gEAAAAAAAAAAAAAAAAAAAAjJkf3g3mhxHP8/7tYN6Pco6vRuXfFN7R+JbGGxrf0XgzKrQTDSv1e9rv/jWNbyj8lcabaSQzrD5j+8S/0ZikDN9TGHr40EbJP2hQpvTbf9GgDkRqp/5OY2zXbGh5Rv5NaPL8hwZtOn5D/Yj/0RhZnn9SGDo+jx59aB/5XxrUMD/BWfchfd59OZh3I3rn258P5u0I5/jqJxR+RuOPFL6k8TsaX9D4A40fUaCe6S8UvhtSnm9/ReGnNH5D4cc0vphGFofU583YPvG3NCYpw58pfD+kPF//gsIvafyawp9oUAcitVO/p/F/du7sya6qigPwpe14kw4hQhmmkEIFEkIKTIETk+BAYZVVYomlEgij0igBHMCpnGd90FLL0gDRIC0+RfgT5aIk50CvnXP33rc7ffa3XpKnldO/Xut+vU9On2rfs5cGxvPyU0FFe37kr0H9PqpoHb8ZflF/jGrueP4c1CtDP5xf/H5Q0Vh95S9B/SmqP0S1iVu3yk52spOd7GQnO9nJTnayk53sZCc72clOdrKTnexkJzvZyU52spOd7GQnO9nJTnayk53sZCc72clOdrLzrHbe/qGDl9ews9sn185uD3Ym82FnenzYmYyHncl82JkeH3bO6rwLDl+xdHW5nb0+mXb2erAzmQ870+PDzmQ87Ezmw870+LBzVjffMJlcfnm5nb0+mXb2erAzmQ870+PDzmQ87Ezmw870+LBzVu+9ajL59MfL7ez1ybSz14OdyXzYmR4fdibjYWcyH3amx4ed/UiWp9P/1LDz9T5rpXbOerAzzOf1eE6xMz0+7EzGw87kdrEzOT6n2OmerXu27tm6Z8tO92zds53bzpVKzwqtVHhWaMWzQkk7VzwrlLJzxbNCKTtXPCuUtHPFs0KvDP1wZucbdffBg3fW+B2Vbp/c31Hp9mBnMh92pseHncl42JnMh53p8WGndyN4N4J3IzRjp3cjeDdCgZ3ejcBOdrKTnexkJzvZyU52spOd7GQnO9nJTnayk53sZCc72clOdrKTnexkJzvZyU52spOd7GQnO9nJTnayk53sZCc72clOdi7UztVgMFbntfPJ9WseO+t9+B2ZG7Zz9NuzmHjuj4qdW2+uisdnSy2L7dqceIwPO203O9npw892sZOd7GQnO3342S52spOdtpud7LRd7GQnO203O9lpu9jJTnbabnayk53sZCc7bTc72clOdhofdrKTnez04We72MlOdrKTney0XezchHx2fnZ7FTt7fXLt7DZh5wbFMxo7+6PMzqzxaddO2zU4HuPzRu07VMfOXp9cO7tN2LlB8YzGzv4oszNrfNq103YNjsf4/K8O17Gz1yf7nu1hdm54POO5Z3uYncXj0/A9W9s1NB7jw07bzU52stN2sbPIzuXpdK2GnbM+pXbOerBzY+IZoZ1V8xmfnal42Nnwdq1OSrfLudO500/Gzp3Onc6d7HTuZCc72clOH362i52V8rn+kisv+1QFO3t9cu3sNmHnBsUzGjv7o8zOrPFp107bNTge4+PdCFvtRz+/ve3dCAseH+9GYKfxYSc72clOH362i53sZCc72clO28VOdrLTdrOTnbaLnexkp+1mJzttFzvZyU7bzU52spOdxoed7GQn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",
            "text/plain": [
              "<Figure size 2600x400 with 8 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "vis_exs = []\n",
        "vis_res = []\n",
        "for ex, res in zip(experiments, results):\n",
        "  if ex.metadata[\"p_q_mode\"] == \"reverse\" and ex.metadata[\"train_seed\"] == 1:\n",
        "    vis_exs.append(ex)\n",
        "    vis_res.append(res)\n",
        "\n",
        "# vis_exs, vis_res = [experiments[i] for i in lr_best_subset_reverse], [results[i] for i in lr_best_subset_reverse]\n",
        "(logits_1, logits_2), coupling_estimates = experiment_util.get_coupling_estimates(vis_exs, vis_res, 2)\n",
        "\n",
        "loss_values = experiment_util.compute_coupling_losses(experiments, logits_1, logits_2, coupling_estimates)\n",
        "\n",
        "ncouplings =  len(coupling_estimates)\n",
        "ncols = 2 + ncouplings\n",
        "fig, axs = plt.subplots(nrows=1, ncols=ncols, figsize=(2 + 4*ncouplings, 4), gridspec_kw={'width_ratios': [2,2] + [11]*ncouplings})\n",
        "axs[0].imshow(jnp.exp(logits_1)[:, None], vmin=0)\n",
        "axs[0].set_xticks([])\n",
        "axs[0].set_yticks(np.arange(10))\n",
        "axs[0].set_title(\"$p$\")\n",
        "axs[1].imshow(jnp.exp(logits_2)[:, None], vmin=0)\n",
        "axs[1].set_xticks([])\n",
        "axs[1].set_yticks(np.arange(10))\n",
        "axs[1].set_title(\"$q$\")\n",
        "for j, (name, coupling) in enumerate(sorted(coupling_estimates.items(), key=lambda t: fix_order(t[0]))):\n",
        "  axs[j+2].imshow(coupling, vmin=0)\n",
        "  axs[j+2].set_title(f\"{fix_name(name)}: {loss_values[name]:.2f}\")\n",
        "  axs[j+2].set_xticks(np.arange(10))\n",
        "  axs[j+2].set_yticks(np.arange(10))\n",
        "fig.tight_layout()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "aw_LskcJFsTq"
      },
      "outputs": [],
      "source": [
        ""
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [
        "JndnmDMp66FL"
      ],
      "last_runtime": {
        "build_target": "//learning/deepmind/public/tools/ml_python:ml_notebook",
        "kind": "private"
      },
      "name": "paper_experiments.ipynb",
      "provenance": [],
      "toc_visible": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
